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 <vector>
#include <algorithm>
std::vector<int> find_subset(int l, int u, std::vector<int> w) {
std::vector<std::pair<int,int>> ww;
for(int i = 0; i < (int)w.size(); i++)
ww.push_back({w[i], i});
sort(ww.begin(), ww.end());
int lf = 0, r = -1;
long long currentSum = 0;
int sol_l = -1, sol_r = -1;
while(true)
{
if(currentSum < l)
{
if(r >= (int)ww.size() - 1)
break;
currentSum += ww[++r].first;
}
if(currentSum > u)
currentSum -= ww[lf++].first;
if(currentSum >= l && currentSum <= u)
{
sol_l = lf;
sol_r = r;
break;
}
}
std::vector<int> ans;
if(sol_l == -1)
return ans;
for(int i = sol_l; i <= sol_r; i++)
ans.push_back(ww[i].second);
return ans;
}
# | 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... |