Submission #991568

#TimeUsernameProblemLanguageResultExecution timeMemory
991568coolboy19521Detecting Molecules (IOI16_molecules)C++17
100 / 100
37 ms7260 KiB
#include <bits/stdc++.h>
#include "molecules.h"

#define intt long long

std::vector<int> find_subset(int l, int u, std::vector<int> w) {
    intt le, ri, sm;
    le = ri = sm = 0;

    std::vector <std::pair <intt, intt>> wi(w.size());

    for (int i = 0; i < (int) w.size(); i ++) {
        wi[i] = std::make_pair(w[i], i);
    }

    std::sort(begin(wi), end(wi));

    while (ri < (int) wi.size()) {
        sm += wi[ri].first;

        if (sm > u) {
            sm -= wi[le].first;
            le ++;
        }
        
        if (sm >= l && sm <= u) {
            std::vector <int> v;

            for (int i = le; i <= ri; i ++) {
                v.push_back(wi[i].second);
            }

            return v;
        }

        ri ++;
    }

    return std::vector<int>(0);
}
#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...