Submission #156292

#TimeUsernameProblemLanguageResultExecution timeMemory
156292a_playerDetecting Molecules (IOI16_molecules)C++14
0 / 100
2 ms376 KiB
#include <bits/stdc++.h> #define f first #define s second #define mp make_pair #define pb push_back using namespace std; typedef long long ll; map<ll,vector<int> > v; ll s=0; vector<int> find_subset(int l,int u, vector<int> w){ for(int i=0;i<w.size();i++){ v[(ll)w[i]].push_back(i); s+=(ll)w[i]; } if(s<(ll)u){ vector<int> sol; return sol; } while(s>(ll)l){ ll d=s-(ll)u; map<ll,vector<int> >::iterator itt=v.upper_bound(d); if(itt==v.begin()){ vector<int> sol; return sol; } itt--; s-=itt->first; itt->second.pop_back(); if(itt->second.empty())v.erase(itt); } vector<int> sol; for(map<ll,vector<int> >::iterator it=v.begin();it!=v.end();it++){ for(int i=0;i<(int)it->second.size();i++)sol.push_back(it->second[i]); } return sol; }

Compilation message (stderr)

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