Submission #1307430

#TimeUsernameProblemLanguageResultExecution timeMemory
1307430ballbreakerDetecting Molecules (IOI16_molecules)C++20
100 / 100
43 ms5156 KiB
#include<bits/stdc++.h> using namespace std; // #include "molecules.h" vector<int>find_subset(int l, int r, vector<int>w) { vector<pair<int, int> >wr; for (int i = 0; i < w.size(); i++) { wr.push_back({w[i], i}); } sort(wr.begin(), wr.end()); long long pref[wr.size() + 1] = {}; for (int i = 0; i < wr.size(); i++) { pref[i + 1] = pref[i] + wr[i].first; } int L = l, R = r; for (int i = 0; i < wr.size(); i++) { int l = i, r = wr.size() - 1; while (l < r) { int mid = (l + r) >> 1; if (pref[mid + 1] - pref[i] >= L) { r = mid; } else { l = mid + 1; } } // cout << i << ' ' << l << endl; if (pref[l + 1] - pref[i] >= L && pref[l + 1] - pref[i] <= R) { vector<int>ans; for (int j = i; j <= l; j++) { ans.push_back(wr[j].second); } return ans; } } return {}; } // main() { // int n, l, u; // cin >> n >> l >> u; // vector<int>w(n); // for (int i = 0; i < n; i++) { // cin >> w[i]; // } // auto x = find_subset(l, u, w); // for (auto y : x) { // cout << y << ' '; // } // }

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