Submission #206351

#TimeUsernameProblemLanguageResultExecution timeMemory
206351TAISA_Detecting Molecules (IOI16_molecules)C++14
100 / 100
72 ms8800 KiB
#include "molecules.h" #include <bits/stdc++.h> #define all(v) v.begin(),v.end() #define eb emplace_back using namespace std; using ll=long long; using P=pair<ll,ll>; std::vector<int> find_subset(int l, int u, std::vector<int> w) { vector<P> ws; for(int i=0;i<w.size();i++){ ws.eb(w[i],i); } sort(all(ws)); int n=w.size(); vector<ll> sum(n+1); for(int i=0;i<n;i++){ sum[i+1]=sum[i]+ws[i].first; } for(ll k=1;k<=n;k++){ ll mi=sum[k],ma=sum[n]-sum[n-k]; if(l<=ma&&mi<=u){ if(ma<=u){ vector<int> v; for(int j=n-k;j<n;j++){ v.eb(ws[j].second); } return v; } ll s=mi; for(int i=k;i<n;i++){ if(l<=s&&s<=u){ vector<int> v; for(int j=i-k;j<i;j++){ v.eb(ws[j].second); } return v; } s+=ws[i].first-ws[i-k].first; } } } return vector<int>(0); }

Compilation message (stderr)

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:10: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...