Submission #139463

#TimeUsernameProblemLanguageResultExecution timeMemory
139463cfalasDetecting Molecules (IOI16_molecules)C++14
9 / 100
2 ms380 KiB
#include<bits/stdc++.h> using namespace std; #include "molecules.h" typedef pair<int, int> ii; #define S second #define F first std::vector<int> find_subset(int p, int u, std::vector<int> w) { vector<ii> a; int n = w.size(); for(int i=0;i<n;i++) a.push_back(ii(w[i], i)); sort(a.begin(), a.end()); int l =0; int r = n-1; int su[n]; su[0] = a[0].F; for(int i=1;i<n;i++) su[i] = su[i-1] + a[i].F; //for(int i=0;i<n;i++) cout<<su[i]<<" "; //cout<<endl; int tot = su[n-1]; for(int i=0;i<n;i++) if(su[i]>u){ r=i, tot = su[i]; break; } //cout<<tot<<" "<<r<<endl; while(l<r){ if(tot>=p && tot<=u){ vector<int> ans; for(int i=l;i<=r;i++){ ans.push_back(a[i].S); } return ans; } tot-=a[l].F; l++; } if(tot>=p && tot<=u){ vector<int> ans; for(int i=l;i<=r;i++){ ans.push_back(a[i].S); } return ans; } return vector<int>(); for(int i=1;i<=n;i++){ int tot = 0; for(int j=0;j<i;j++){ tot+=a[j].F; } for(int j=i;j<n;j++){ if(tot>=l && tot<=u){ vector<int> res; for(int k=j-i;k<j;k++) res.push_back(a[k].S); return res; } tot-=a[j-i].F; tot+=a[j].F; } if(tot>=l && tot<=u){ vector<int> res; for(int k=n-i;k<n;k++) res.push_back(a[k].S); return res; } } return vector<int>(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...