Submission #1075365

#TimeUsernameProblemLanguageResultExecution timeMemory
1075365juicyDetecting Molecules (IOI16_molecules)C++17
100 / 100
38 ms4952 KiB
#include "molecules.h"

#include <bits/stdc++.h>

std::vector<int> find_subset(int l, int u, std::vector<int> w) {
    int n = w.size();
    std::vector<int> ord(n); std::iota(ord.begin(), ord.end(), 0);
    std::sort(ord.begin(), ord.end(), [&](int i, int j) {
        return w[i] < w[j];
    });
    std::vector<int> res;
    long long cur = w[ord[0]];
    for (int i = 0, j = 1; i < n; ++i) {
        while (j < n && cur < l) {
            cur += w[ord[j++]];
        }
        if (l <= cur && cur <= u) {
            for (int k = i; k < j; ++k) {
                res.push_back(ord[k]);
            }
            break;
        }
        cur -= w[ord[i]];
    }
    return res;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...