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<pair<long long, long long> >dn(n);
for(int i=0;i<n;i++){
dn[i].first=w[i];
dn[i].second=i;
}
sort(dn.begin(),dn.end());
vector<long long> mi(n,0),mx(n,0);
mi[0]=dn[0].first;
mx[0]=dn[n-1].first;
for(int i=1;i<n;i++){
mi[i]=mi[i-1]+dn[i].first;
mx[i]=mx[i-1]+dn[n-1-i].first;
}
vector<int>dm(0);
for(int i=0;i<n;i++){
if(mi[i]>u){
break;
}
if(mx[i]<l){
continue;
}
if(mi[i]<=u&&mx[i]>=l){
long long k=mi[i];
int q=0;
for(int j=0;j<n;j++){
if(k>=l){
q=j;
break;
}else{
k+=dn[n-1-j].first-dn[j].first;
}
}
for(int j=q;j<=i;j++){
dm.push_back(dn[j].second);
}
for(int j=n-1;j>n-1-q;j--){
dm.push_back(dn[j].second);
}
}
}
return dm;
}
# | 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... |