Submission #61242

#TimeUsernameProblemLanguageResultExecution timeMemory
61242TenuunDetecting Molecules (IOI16_molecules)C++17
100 / 100
91 ms31704 KiB
#include "molecules.h"
#include<bits/stdc++.h>

using namespace std;

vector<int> find_subset(int l, int u, std::vector<int> w) {
	deque<int>res;
	vector<int>ans;
	vector<pair<int, int> >v;
	for(int i=0; i<w.size(); i++){
		v.push_back({w[i], i});
	}
	sort(v.rbegin(), v.rend());
	long long curr=0;
	int L=0, r=0;
	while(L<v.size()){
		r=max(r, L);
		if(L==r){
			curr=v[L].first;
			res.clear();
			res.push_back(v[L].second);
		}
		while(r+1<v.size() && curr<l){
			curr+=v[r+1].first;
			res.push_back(v[r+1].second);
			r++;
		}
		if(curr>=l && curr<=u){
			while(!res.empty()){
				ans.push_back(res.front());
				res.pop_front();
			}
			return ans;
		}
		while(!res.empty() && curr>u){
			curr-=v[L].first;
			res.pop_front();
			L++;
		}
		if(curr>=l && curr<=u){
			while(!res.empty()){
				ans.push_back(res.front());
				res.pop_front();
			}
			return ans;
		}
		if(r==v.size()-1) break;
	}
	if(curr>=l && curr<=u){
		while(!res.empty()){
			ans.push_back(res.front());
			res.pop_front();
		}
		return ans;
	}
	else return ans;
}

Compilation message (stderr)

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:10:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0; i<w.size(); i++){
               ~^~~~~~~~~
molecules.cpp:16:9: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  while(L<v.size()){
        ~^~~~~~~~~
molecules.cpp:23:12: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   while(r+1<v.size() && curr<l){
         ~~~^~~~~~~~~
molecules.cpp:47:7: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if(r==v.size()-1) break;
      ~^~~~~~~~~~~~
#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...