Submission #1045707

#TimeUsernameProblemLanguageResultExecution timeMemory
1045707Gromp15Detecting Molecules (IOI16_molecules)C++17
100 / 100
39 ms4952 KiB
#include "molecules.h" #include <bits/stdc++.h> #define all(x) x.begin(), x.end() #define sz(x) (int)x.size() using namespace std; std::vector<int> find_subset(int l, int u, std::vector<int> w) { int n = sz(w); vector<int> idx(n); iota(all(idx), 0); sort(all(idx), [&](int x, int y) { return w[x] < w[y]; }); vector<bool> use(n); long long sum = 0; int to = -1; for (int i = 0; i < n; i++) { if (sum + w[idx[i]] > u) break; use[i] = 1; sum += w[idx[i]], to = i; } if (to == -1) return {}; int L = 0; while (sum < l && to+1 < n) { sum += w[idx[to+1]] - w[idx[L]]; use[L] = 0, use[to+1] = 1; L++, to++; } if (sum < l) return {}; vector<int> ans; for (int i = 0; i < n; i++) if (use[i]) ans.emplace_back(idx[i]); return ans; }
#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...