Submission #578593

#TimeUsernameProblemLanguageResultExecution timeMemory
578593MrDebooDetecting Molecules (IOI16_molecules)C++17
100 / 100
75 ms7152 KiB
#include "molecules.h" #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>>v; for(int i=0;i<n;i++)v.push_back({w[i],i}); sort(v.begin(),v.end()); sort(w.begin(),w.end()); long long pre[n]; pre[0]=w[0]; for(int i=1;i<n;i++)pre[i]=pre[i-1]+w[i]; w.push_back(0); long long sm=0; int f=n-1; vector<int>vct; for(int i=n;i>=0&&sm<=u;i--){ sm+=w[i]; f=min(f,i-1); while(f>0&&pre[f]+sm>u)f--; if(i!=n&&sm>=l&&sm<=u){ for(int w=n-1;w>=i;w--)vct.push_back(v[w].second); break; } if(pre[f]+sm>=l&&pre[f]+sm<=u){ for(int w=0;w<=f;w++)vct.push_back(v[w].second); for(int w=n-1;w>=i;w--)vct.push_back(v[w].second); break; } } return vct; }
#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...