Submission #974855

#TimeUsernameProblemLanguageResultExecution timeMemory
974855tamir1Detecting Molecules (IOI16_molecules)C++17
100 / 100
51 ms6312 KiB
#include "molecules.h"
#include <bits/stdc++.h>
using namespace std;
vector<pair<int,int>> x;
vector<int> find_subset(int l, int u, vector<int> w) {
	vector<int> ans={};
	int n=w.size(),m=0,k,p,y=0;
	long long sum=0;
	for(int i=0;i<n;i++){
		sum+=w[i];
		x.push_back({w[i],i});
	}
	if(sum<l) return {};
	sort(w.begin(),w.end());
	sort(x.begin(),x.end());
	sum=0;
	for(int i=0;i<n;i++){
		if(sum+w[i]>u) break;
		sum+=w[i];
		m=i+1;
	}
	if(m==0) return {};
	k=n-1;
	p=0;
	while(sum<l){
		if(k<m || p==m) break;
		y++;
		sum+=w[k];
		sum-=w[p];
		k--;
		p++;
	}
	if(sum<l) return {};
	for(int i=y;i<m;i++) ans.push_back(x[i].second);
	for(int i=n-1;i>=n-y;i--) ans.push_back(x[i].second);
    return ans;
}
#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...