이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "molecules.h"
#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
#define fs first
#define sc second
#define p_q priority_queue
using namespace std;
vector<int> find_subset(int l, int u, vector<int> w) {
int n=w.size();
auto z=w;
vector<pair<long long,int> > v;
for(int i=0;i<n;i++){
v.push_back({w[i],i});
}
sort(v.begin(),v.end());
auto a=v,b=v;
reverse(b.begin(),b.end());
for(int i=1;i<n;i++){
a[i].fs+=a[i-1].fs;
b[i].fs+=b[i-1].fs;
}
for(int i=0;i<n;i++){
long long x=a[i].fs,y=b[i].fs;
if(x>=l && x<=u){
vector<int> c;
for(int j=0;j<=i;j++){
c.push_back(a[j].sc);
}
return c;
}
else if(y>=l && y<=u){
vector<int> c;
for(int j=0;j<=i;j++){
c.push_back(b[j].sc);
}
return c;
}
else if(x<=l && y>=u){
vector<int> c;
long long f=x;
for(int j=0;j<=i;j++){
c.push_back(a[j].sc);
}
for(int j=0;j<=i;j++){
c[j]=b[j].sc;
f+=(v[n-j-1].fs-v[j].fs);
if(f>=l && f<=u){
return c;
}
}
}
}
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... |