# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
423819 | Apiram | Detecting Molecules (IOI16_molecules) | C++14 | 69 ms | 9008 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;
std::vector<int> find_subset(int l, int u, std::vector<int> brr) {
queue<pair<int64_t,int>>q;
vector<pair<int64_t,int>>arr;
for (int i =0;i<brr.size();++i){
arr.push_back({brr[i],i});
}
sort(arr.begin(),arr.end());
int64_t sum =0;
for(int i =0;i<arr.size();++i){
if (sum>=l&&sum<=u)break;
if (sum+arr[i].first>=l&&sum+arr[i].first<=u){
sum+=arr[i].first;
q.push({arr[i].first,arr[i].second});
break;}
if (sum+arr[i].first<=u){
sum+=arr[i].first;
q.push({arr[i].first,arr[i].second});
}
else {
while(!q.empty()&&sum+arr[i].first>u){
sum-=q.front().first;
q.pop();}
sum+=arr[i].first;
q.push({arr[i].first,arr[i].second});
}}
vector<int>ans;
if (sum>=l&&sum<=u){
while(!q.empty()){
ans.push_back(q.front().second);
q.pop();}
sort(ans.begin(),ans.end());
}
return ans;
}
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... |