Submission #568114

#TimeUsernameProblemLanguageResultExecution timeMemory
568114hoanghq2004Detecting Molecules (IOI16_molecules)C++14
100 / 100
62 ms4800 KiB
#include <bits/stdc++.h>
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#include "molecules.h"

using namespace __gnu_pbds;
using namespace std;

template <typename T>
using ordered_set = tree <T, null_type, less <T>, rb_tree_tag, tree_order_statistics_node_update>;

vector<int> find_subset(int l, int u, vector<int> w) {
    int n = w.size();
    vector <int> p(n);
    for (int i = 0; i < n; ++i) p[i] = i;
    sort(p.begin(), p.end(), [&](int u, int v) {
        return w[u] < w[v];
    });
    long long sum = 0;
    vector <int> ans;
    for (int i = 0, j = 0; i < n; ++i) {
        sum += w[p[i]];
        while (j <= i && sum > u) {
            sum -= w[p[j]];
            ++j;
        }
        if (sum >= l) {
            for (int k = j; k <= i; ++k) ans.push_back(p[k]);
            return ans;
        }
    }
    return ans;
}

//int main() {
//    int n, l, u;
//    assert(3 == scanf("%d %d %d", &n, &l, &u));
//    std::vector<int> w(n);
//    for (int i = 0; i < n; i++)
//        assert(1 == scanf("%d", &w[i]));
//    std::vector<int> result = find_subset(l, u, w);
//
//
//    printf("%d\n", (int)result.size());
//    for (int i = 0; i < (int)result.size(); i++)
//        printf("%d%c", result[i], " \n"[i == (int)result.size() - 1]);
//}

Compilation message (stderr)

molecules.cpp:2: warning: ignoring '#pragma GCC optimization' [-Wunknown-pragmas]
    2 | #pragma GCC optimization ("O3")
      | 
molecules.cpp:3: warning: ignoring '#pragma GCC optimization' [-Wunknown-pragmas]
    3 | #pragma GCC optimization ("unroll-loops")
      |
#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...