Submission #855171

#TimeUsernameProblemLanguageResultExecution timeMemory
855171Huseyn123Detecting Molecules (IOI16_molecules)C++17
100 / 100
50 ms17236 KiB
#include <bits/stdc++.h> #include "molecules.h" #define pb push_back #define mp make_pair #define INF LLONG_MAX using namespace std; typedef long long ll; typedef pair<ll,ll> pll; vector<int> find_subset(int l, int u, std::vector<int> w) { vector<int> c; vector<pair<ll,ll>> d; vector<ll> e; vector<pair<ll,ll>> e1; int n=w.size(); e.resize(n+1,0); for(int i=0;i<n;i++){ d.pb(mp(w[i],(ll)i)); } sort(d.begin(),d.end()); for(int i=1;i<=n;i++){ e[i]=e[i-1]+d[i-1].first; } e1.pb(mp((ll)0,(ll)0)); for(int i=1;i<=n;i++){ auto it=upper_bound(e1.begin(),e1.end(),mp(e[i]-l,INF)); if(it!=e1.begin()){ --it; pll p=*it; if(e[i]-p.first<=u){ for(int j=p.second;j<i;j++){ c.pb(d[j].second); } break; } } e1.pb(mp(e[i],(ll)i)); } sort(c.begin(),c.end()); return c; }
#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...