Submission #936788

#TimeUsernameProblemLanguageResultExecution timeMemory
9367884QT0RDetecting Molecules (IOI16_molecules)C++17
100 / 100
49 ms9420 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long vector<int> find_subset(int l, int u, vector<int> w){ ll n=w.size(),sm=0; vector<int> ans; vector<pair<ll,ll>> cp; for (int i = 0; i<n; i++){ sm+=w[i]; cp.push_back({w[i],i}); } sort(cp.begin(),cp.end()); if (sm<l)return {}; set<pair<ll,ll>> s; sm=0; for (int i = 0; i<n; i++){ sm+=cp[i].first; s.insert(cp[i]); if (l<=sm && sm<=u){ for (auto u : s)ans.push_back(u.second); break; } if (sm>u){ auto it = s.lower_bound({u-sm,-1}); if (it==s.end())it--; sm-=it->first; s.erase(it); } if (l<=sm && sm<=u){ for (auto u : s)ans.push_back(u.second); break; } } return ans; }
#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...