Submission #239434

#TimeUsernameProblemLanguageResultExecution timeMemory
239434GREGOIRELCDetecting Molecules (IOI16_molecules)C++14
100 / 100
88 ms6248 KiB
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

#define ll long long

vector<int> find_subset(int l, int u, std::vector<int> w)
{
	vector<pair<ll, ll> > val;
	for(int i = 0; i < w.size(); i++)
	{
		val.push_back({w[i], i});
	}
	sort(val.begin(), val.end());
	sort(w.begin(), w.end());
	ll deb = 0, fin = 0;
	ll s = 0;
	while(fin < val.size() && s < l)
	{
		if(s + val[fin].first > u)
		{
			s -= val[deb].first;
			s += val[fin].first;
			deb++;
			fin++;
		}
		else
		{
			s += val[fin].first;
			fin++;
		}
	}
	vector<int> result;
	if(s < l || s > u)
	{
		return result;
	}
	for(int i = deb; i < fin; i++)
	{
		result.push_back(val[i].second);
	}
	return result;
}

Compilation message (stderr)

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:12:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i = 0; i < w.size(); i++)
                 ~~^~~~~~~~~~
molecules.cpp:20:12: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  while(fin < val.size() && s < l)
        ~~~~^~~~~~~~~~~~
#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...