# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
164670 | aggu_01000101 | Detecting Molecules (IOI16_molecules) | C++14 | 0 ms | 0 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 <iostream>
#include <vector>
#include <algorithm>
#define int long long
using namespace std;
vector<int> find_subset(int l, int u, vector<int> arr){
vector<pair<int, int>> arr1;
for(int i = 0;i<arr.size();i++){
arr1.push_back(make_pair(arr[i], i));
}
sort(arr1.begin(), arr1.end());
vector<int> answer;
int first = 0, last = 1;
int sum = 0;
while(last<=arr1.size() && first<arr.size()){
if(sum>=l && sum<=u){
for(int i = first;i<last;i++){
answer.push_back(arr1[i].second+1);
}
goto returnanswer;
}
else if(sum<l){
if(last<arr1.size()) sum+=arr1[last].first;
last++;
}
else{
sum-=arr1[first].first;
first++;
}
}
returnanswer:
return answer;
}