Submission #529853

#TimeUsernameProblemLanguageResultExecution timeMemory
529853new_accDetecting Molecules (IOI16_molecules)C++14
100 / 100
50 ms8596 KiB
#include<bits/stdc++.h> #define fi first #define se second using namespace std; typedef long long ll; typedef vector<int> vi; typedef vector<ll> vl; const int N=5e5+10; vi find_subset(int l,int u, vi a){ vector<pair<int,int> >w; for(int i=0;i<a.size();i++) w.push_back({a[i],i}); int n=w.size(); w.push_back({0,-1}); vl pref; pref.push_back(0); sort(w.begin(),w.end()); vi res; ll mini=w[1].fi; for(int i=1;i<=n;i++) w[i].fi-=mini; for(int i=1;i<=n;i++) pref.push_back(pref[pref.size()-1]+w[i].fi); for(int i=1;i<=n;i++){ ll nu=u-mini*(ll)i,nl=l-mini*(ll)i; if(pref[i]>nu or pref[n]-pref[n-i]<nl) continue; ll curr=0; for(int j=1;j<=i;j++){ curr+=w[j].fi; res.push_back(w[j].se); } for(int j=1;j<=i;j++){ if(curr>=nl) break; curr+=w[n-j+1].fi-w[j].fi; res[j-1]=w[n-j+1].se; } sort(res.begin(),res.end()); return res; } return res; }

Compilation message (stderr)

molecules.cpp: In function 'vi find_subset(int, int, vi)':
molecules.cpp:11:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   11 |  for(int i=0;i<a.size();i++) w.push_back({a[i],i});
      |              ~^~~~~~~~~
#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...