# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1175192 | bangan | Detecting Molecules (IOI16_molecules) | C++20 | 34 ms | 3656 KiB |
#include "molecules.h"
#include <bits/stdc++.h>
using i64 = long long;
using i2 = std::array<int, 2>;
std::vector<int> find_subset(int l, int u, std::vector<int> w) {
int n = w.size();
std::vector<i2> a(n);
for (int i = 0; i < n; i++) {
a[i] = {w[i], i};
}
std::sort(a.begin(), a.end());
i64 sum = 0;
int r = n - 1;
for (int i = 0; i < n; i++) {
while (r + 1 < n && sum > u) {
sum -= a[++r][0];
}
while (r >= i && sum + a[r][0] <= u) {
sum += a[r--][0];
}
if (l <= sum && sum <= u) {
std::vector<int> ans;
for (int j = 0; j < i; j++) {
ans.push_back(a[j][1]);
}
for (int j = n - 1; j > r; j--) {
Compilation message (stderr)
# | 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... |