이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "bits/stdc++.h"
#include "molecules.h"
using namespace std;
using ll = long long;
using pi = pair<long long, long long>;
using vi = vector<long long>;
#define pb emplace_back
vector<int> find_subset(int l, int u, vector<int> w) {
int n = w.size();
vector<pi> val;
for(int i = 0; i < n; ++i) {
val.pb(w[i], i);
}
sort(val.begin(), val.end());
pi ans = {-1, -1};
vi pref(n);
for(int i = 0; i < n; ++i) {
pref[i] = val[i].first;
if(i) pref[i] += pref[i - 1];
}
for(int i = 0; i < n; ++i) {
if(pref[i] < l) continue;
if(pref[i] <= u) {
ans = {0, i};
break;
}
ll req = pref[i] - u;
auto it = lower_bound(pref.begin(), pref.end(), req) - pref.begin();
if(it > i) continue;
ll sum = pref[i] - pref[it];
if(l <= sum && sum <= u) {
ans = {it + 1, i};
break;
}
}
vector<int> res;
pi bad = {-1, -1};
if(ans == bad) {
return res;
}
for(int i = ans.first; i <= ans.second; ++i) {
res.pb(val[i].second);
}
return res;
}
# | 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... |