Submission #156291

#TimeUsernameProblemLanguageResultExecution timeMemory
156291a_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>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...