Submission #1175192

#TimeUsernameProblemLanguageResultExecution timeMemory
1175192banganDetecting Molecules (IOI16_molecules)C++20
100 / 100
34 ms3656 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) { // a[++r][0]; // } } return {}; }

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...