Submission #1196674

#TimeUsernameProblemLanguageResultExecution timeMemory
1196674amanthabandDetecting Molecules (IOI16_molecules)C++20
100 / 100
36 ms4120 KiB
#ifndef MOLECULES_H
#define MOLECULES_H

#include <vector>
#include <algorithm>

std::vector<int> find_subset(int l, int u, std::vector<int> w) {
    int n = w.size();
    std::vector<std::pair<int, int>> in;
    for (int i = 0; i < n; i++)
        in.push_back({w[i], i});
    std::sort(in.begin(), in.end());

    int left = 0, right = 0;
    long long sum = 0;

    while (right < n) {
        sum += in[right].first;
        while (sum > u && left <= right) {
            sum -= in[left].first;
            ++left;
        }
        if (sum >= l && sum <= u) {
            std::vector<int> ans;
            for (int i = left; i <= right; i++)
                ans.push_back(in[i].second);
            return ans;
        }
        ++right;
    }

    return {};
}

#endif

Compilation message (stderr)

molecules.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
molecules_c.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
#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...