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) {
int n = w.size();
vector<int> minval(n);
vector<int> maxval(n);
int curmin = 0;
int curmax = 0;
for (int i = 0; i<n; i++){
curmin+=w[i];
curmax+=w[n-1-i];
minval[i]=curmin;
maxval[i]=curmax;
}
for (int i = 0; i<n; i++){
if (l<=minval[i]&&minval[i]<=u){
vector<int> ans(i+1);
for (int x = 0; x<=i; x++){
ans[x]=x;
}
return ans;
} else if (l<=maxval[i]&&maxval[i]<=u){
vector<int> ans(i+1);
for (int x = n-1; x>=n-1-i; x--){
ans[n-1-x]=x;
}
return ans;
} else if (l<=minval[i]&&maxval[i]<=u){
int lptr = i;
int rptr = n-1;
int s = minval[i];
while (!(l<=s&&s<=u)){
s-=w[lptr];
s+=w[rptr];
lptr--;
rptr--;
}
vector<int> ans;
for (int i = 0; i<=lptr; i++){
ans.push_back(i);
}
for (int i = rptr+1; i<n-1; i++){
ans.push_back(i);
}
return ans;
}
}
return vector<int>(0);
}
| # | 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... |