Submission #425352

#TimeUsernameProblemLanguageResultExecution timeMemory
425352dreezyDetecting Molecules (IOI16_molecules)C++17
9 / 100
1 ms204 KiB
#include <bits/stdc++.h> #include "molecules.h" using namespace std; #define pb push_back #define pi pair<int,int> #define w first #define ind second #define ll long long #define mp make_pair vector<int> find_subset(int l, int u, vector<int> w) { int n = w.size(); //set<pi> weights; vector<pi> weights(n); for(int i =0; i<n ;i++){ //weights.insert({w[i], i}); weights[i] = {w[i], i}; } sort(weights.begin(), weights.end()); vector<int> ans; ll cursum = 0; for(int i = n-1; i>= 0; i--){ if( cursum + weights[i].w > u) continue; cursum += weights[i].w; ans.pb(weights[i].ind); if( l <= cursum && u >= cursum){ sort(ans.begin(), ans.end()); return ans; } } /*auto it = weights.begin(); while(true){ it = lower_bound(weights.begin(), weights.end(), mp(u - cursum + 1, - 1) ); if(it == weights.begin()) break; it = prev(it); cout << it ->w<<endl; cursum += it->w; ans.pb(it->ind); it = weights.erase(it); if( l<= cursum and cursum <=u){ sort(ans.begin(), ans.end()); //for(int a : ans)cout << a <<","; //cout <<endl; return ans; } if(it == weights.begin()){ break; } it = prev(it); } */ 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...