Submission #206347

#TimeUsernameProblemLanguageResultExecution timeMemory
206347TAISA_Detecting Molecules (IOI16_molecules)C++14
9 / 100
5 ms380 KiB
#include "molecules.h"
#include <bits/stdc++.h>
#define all(v) v.begin(),v.end()
#define eb emplace_back
using ll=long long;
using namespace std;
std::vector<int> find_subset(int l, int u, std::vector<int> w) {
	sort(all(w));
	int n=w.size();
	vector<ll> sum(n+1);
	for(int i=0;i<n;i++){
		sum[i+1]=sum[i]+w[i];
	}
	for(ll k=1;k<=n;k++){
		ll lb=l-k*w[0],ub=u-k*w[0];
		ll mi=sum[k]-k*w[0],ma=sum[n]-sum[n-k]-k*w[0];
		if(lb<=ma&&mi<=ub){
			ll s=mi;
			for(int i=k;i<n;i++){
				if(lb<=s&&s<=ub){
					vector<int> v;
					for(int j=i-k;j<i;j++)v.eb(j);
					return v;
				}
				s+=w[i]-w[i-k];
			}
			if(lb<=s&&s<=ub){
				vector<int> v;
				for(int j=n-k;j<n;j++)v.eb(j);
				return v;
			}
		}
	}
	return vector<int>(0);
}
#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...