This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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();
set<pi> weights;
for(int i =0; i<n ;i++){
weights.insert({w[i], i});
}
vector<int> ans;
int cursum = 0;
auto it = weights.begin();
while(true){
it = lower_bound(weights.begin(), weights.end(), mp(u - cursum + 1, - 1) );
if(it == weights.begin())
break;
it = prev(it);
//cout << it ->w<<endl;
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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |