Submission #673752

#TimeUsernameProblemLanguageResultExecution timeMemory
673752tbzardDetecting Molecules (IOI16_molecules)C++14
100 / 100
77 ms14484 KiB
#include <bits/stdc++.h> using namespace std; vector<int> find_subset(int l, int u, vector<int> w){ int n = w.size(); vector<pair<int, int> > w2; for(int i=0;i<n;i++){ w2.push_back(make_pair(w[i], i)); } sort(w2.begin(), w2.end()); long long sum = 0; vector<int> ans; multiset<pair<int, int> > res; int j = 0; for(int i=0;i<n;i++){ if(sum+w2[i].first > u) break; sum += w2[i].first; ans.push_back(w2[i].second); res.insert(w2[i]); j = i; } if(res.size() == 0) return vector<int>{}; if(sum >= l) return ans; for(int i=j+1;i<n;i++){ sum -= res.begin()->first; res.erase(res.begin()); sum += w2[i].first; res.insert(w2[i]); if(sum >= l) break; } if(sum >= l){ ans.clear(); for(auto it:res){ ans.push_back(it.second); } return ans; } 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...