Submission #167875

#TimeUsernameProblemLanguageResultExecution timeMemory
167875Peacher29Detecting Molecules (IOI16_molecules)C++14
100 / 100
61 ms5752 KiB
#include "molecules.h" #include<bits/stdc++.h> using namespace std; bool b[200000]; std::vector<int> find_subset(int l, int u, std::vector<int> w) { vector<pair<int,int>> p(w.size()); vector<int> er; int n=w.size(); for(int i=0;i<w.size();i++){ p[i].first=w[i]; p[i].second=i; } sort(p.begin(),p.end()); long long osszeg=0; for(int i=p.size()-1;i>=0 && osszeg < l ; i--){ osszeg+=p[i].first; b[i]=1; } int p1=p.size()-1, p2=0; while(osszeg>u){ if(b[p2]){ break; } if(!b[p1]){ break; } b[p2]=1; b[p1]=0; osszeg-=p[p1].first; osszeg+=p[p2].first; ++p2; --p1; } if(osszeg>=l && osszeg <= u){ for(int i=0;i<n;i++){ if(b[i]) er.push_back(p[i].second); } } return er; }

Compilation message (stderr)

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:13:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0;i<w.size();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...