Submission #977414

#TimeUsernameProblemLanguageResultExecution timeMemory
977414sstojilkovic19Detecting Molecules (IOI16_molecules)C++14
100 / 100
48 ms7252 KiB
#include "molecules.h" #include <bits/stdc++.h> using namespace std; std::vector<int> find_subset(int l, int u, std::vector<int> w) { //return std::vector<int>(0); int leva=-1, desna=-1; vector<int>ans; //sort(w.begin(), w.end()); int n = w.size(); vector <pair<int, int>>w2(n); for(int i = 0; i<n; i++)w2[i]={w[i], i}; sort(w2.begin(), w2.end()); vector<long long>pref(n+1, 0); for(int i = 1; i<=n; i++)pref[i]=pref[i-1]+w2[i-1].first; for(int i = 1; i<=n; i++) { auto g = upper_bound(pref.begin(),pref.end(), pref[i]-l) - pref.begin(); //cout<<pref[i]<<" "<<g<<"\n"; if(g==0)continue; if(pref[i]-pref[g-1]<=u) { leva = g; desna = i; break; } } //cout<<leva<<" "<<desna<<"\n"; if(leva==-1 && desna==-1) return vector<int>(0); else { //cout<<"here\n"; for(int i = leva; i<=desna; i++)ans.push_back(w2[i-1].second); 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...