Submission #404936

#TimeUsernameProblemLanguageResultExecution timeMemory
404936ahmeterenDetecting Molecules (IOI16_molecules)C++14
0 / 100
1 ms204 KiB
#include <bits/stdc++.h>
using namespace std;
vector<long long> find_subset(int l, int u, vector<int> w)
{
	int n = w.size();
	vector<pair<int, int> > vec(n);
	vector<long long> pre(n+1), cevap;	
	for(int i = 0; i < n; i++)
	{
		vec[i] = {w[i], i};
	}
	sort(vec.begin(), vec.end());
	for(int i = 0; i < n; i++)
		pre[i+1] = pre[i] + vec[i].first;
	for(int i = 1; i <= n; i++)
	{
		int low = 0, high = n - i + 1;
		while(low < high)
		{
			int mid = (low + high) / 2;
			long long sum = pre[mid + i] - pre[mid];
			if(sum < l)
				low = mid + 1;
			else if(sum > u)
				high = mid;
			else
			{
				for(int j = mid; j < mid + i; j++)
					cevap.push_back(vec[j].second);
				break;
			}
		}
		if(cevap.size())
			break;
	}
	sort(cevap.begin(), cevap.end());
	return cevap;
}
#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...