# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
63291 | KHUSRAV | Detecting Molecules (IOI16_molecules) | C++14 | 164 ms | 34532 KiB |
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 "molecules.h"
#include<bits/stdc++.h>
using namespace std ;
vector<int> find_subset(int l, int u, vector<int> w) {
vector<pair<long long , long long> > v ;
for(int i = 0 ; i < w.size() ; i++)
v.push_back({w[i] , i});
sort(v.begin() , v.end());
vector<int> ans ;
set<pair<long long , long long> > se;
long long s = 0 ;
int t = -1;
for(int i = 0 ; i < v.size() && s <= u; i++){
s = s + v[i].first;
t = i ;
}
if(s <= u)
t ++ ;
s = 0 ;
if(t == 0)
return vector<int>();
for(int i = 0 ; i <= t - 1 ; i ++){
se.insert(v[i]);
s = s + v[i].first;
}
if(s >= l){
for(auto it : se){
ans.push_back(it.second);
}
return ans ;
}
for(int i = v.size() - 1 ; i >= t ; i -- ){
s = s - se.begin()->first;
s = s + v[i].first;
se.erase(se.begin());
se.insert({v[i].first , v[i].second});
if(s >= l){
for(auto it : se){
ans.push_back(it.second);
}
return ans ;
}
}
return vector<int>();
}
Compilation message (stderr)
# | 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... |