Submission #425339

#TimeUsernameProblemLanguageResultExecution timeMemory
425339dreezyDetecting Molecules (IOI16_molecules)C++17
9 / 100
1 ms244 KiB
#include <bits/stdc++.h>
#include "molecules.h"
using namespace std;
#define pb push_back
#define pi pair<int,int>
#define w first
#define ind second
#define ll long long
#define mp make_pair
vector<int> find_subset(int l, int u, vector<int> w) {
	int n = w.size();
	
	vector<pi> weights(n);
	for(int i =0; i<n ;i++){
		weights[i] = {w[i], i};
	}
	sort(weights.begin(), weights.end());
	
	vector<int> ans;
	
	
	int cursum = 0;
	auto it = weights.begin();
	while(true){
		it = lower_bound(weights.begin(), weights.end(), mp(u - cursum, - 1) );
		if(it == weights.end())
			it = prev(it);
		cursum += it->w;
		ans.pb(it->ind);
		it = weights.erase(it);

		if( l<= cursum and cursum <=u){
			sort(ans.begin(), ans.end());
			//for(int a : ans)cout << a <<",";
			//cout <<endl;
			return ans;
		}
		if(it == weights.begin()){
			break;
		}
		
		it = prev(it);
			
	}
	
    return  vector<int>();
}


/***************/
#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...