Submission #468573

#TimeUsernameProblemLanguageResultExecution timeMemory
468573PiejanVDCDetecting Molecules (IOI16_molecules)C++17
69 / 100
4 ms480 KiB
#include <molecules.h>
#include <bits/stdc++.h>
using namespace std;

vector<int> find_subset(int l, int u, vector<int> ww) {
	int n = ww.size();
	vector<pair<int,int>>w(n);
	for(int i = 0 ; i < n ; i++) {
		w[i].first=ww[i],w[i].second=i;
	}
	int cnt=0;
	sort(w.begin(),w.end());
	int left=0,right=0;
	while(right < n) {
		if(cnt + w[right].first > u) break;
		cnt+=w[right].first;
		right++;
	}
	if(right == 0) return {};
	bool f=false;
	while(right <= n) {
		if(cnt >= l && cnt <= u) {
			f=true; break;
		}
		if(right == n) break;
		cnt+=w[right].first;
		cnt-=w[left].first;
		right++,left++;
	}
	vector<int>ans={};
	if(f) {
		for(; left < right ; left++) ans.push_back(w[left].second);
	}
	return ans;
}

/*signed main() {
	int n,l,u;
	cin >> n >> l >> u;
	vector<int>w(n);
	for(auto &z : w)
		cin >> z;
	vector<int>v = find_subset(l,u,w);
	for(auto x : v)
		cout << x << " ";
}*/
#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...