Submission #756453

#TimeUsernameProblemLanguageResultExecution timeMemory
756453borisAngelovDetecting Molecules (IOI16_molecules)C++17
100 / 100
65 ms8616 KiB
#include "molecules.h" #include <algorithm> #include <iostream> #include <vector> using namespace std; const int maxn = 200005; int n; pair<long long, int> a[maxn]; long long preffix[maxn]; long long minv, maxv; vector<int> find_subset(int inputl, int inputr, vector<int> weights) { minv = inputl * 1LL; maxv = inputr * 1LL; n = weights.size(); for (int i = 1; i <= n; ++i) { a[i].first = weights[i - 1] * 1LL; a[i].second = i - 1; } sort(a + 1, a + n + 1); for (int i = 1; i <= n; ++i) { preffix[i] = preffix[i - 1] + a[i].first; } for (int i = 1; i <= n; ++i) { int l = i; int r = n; while (l <= r) { int mid = (l + r) / 2; if (preffix[mid] - preffix[i - 1] >= minv) { r = mid - 1; } else { l = mid + 1; } } if (l == n + 1 || preffix[l] - preffix[i - 1] > maxv) { continue; } vector<int> result; for (int j = i; j <= l; ++j) { result.push_back(a[j].second); } sort(result.begin(), result.end()); return result; } vector<int> dumb; return dumb; }
#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...