| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 1175191 | bangan | Detecting Molecules (IOI16_molecules) | C++20 | 0 ms | 328 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--) {
                ans.push_back(a[j][1]);
            }
            return ans;
        }
        sum += a[i][0];
        if (r == i - 1) {
            sum -= a[++r][0];
        }
        if (r == i) {
            r++;
        }
    }
    return {};
}
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... | ||||
