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>
#define all(x) x.begin(), x.end()
#define sz(x) (int)x.size()
using namespace std;
std::vector<int> find_subset(int l, int u, std::vector<int> w) {
int n = sz(w);
vector<int> idx(n);
iota(all(idx), 0);
sort(all(idx), [&](int x, int y) { return w[x] < w[y]; });
vector<bool> use(n);
long long sum = 0;
int to = -1;
for (int i = 0; i < n; i++) {
if (sum + w[idx[i]] > u) break;
use[i] = 1;
sum += w[idx[i]], to = i;
}
if (to == -1) return {};
int L = 0;
while (sum < l && to+1 < n) {
sum += w[idx[to+1]] - w[idx[L]];
use[L] = 0, use[to+1] = 1;
L++, to++;
}
if (sum < l) return {};
vector<int> ans;
for (int i = 0; i < n; i++) if (use[i]) ans.emplace_back(idx[i]);
return ans;
}
# | 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... |