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