Submission #159421

#TimeUsernameProblemLanguageResultExecution timeMemory
159421MounirDetecting Molecules (IOI16_molecules)C++14
100 / 100
63 ms7148 KiB
#include <bits/stdc++.h> using namespace std; struct Molecule { int val, id; bool operator < (const Molecule &autre) const { return val < autre.val; } }; vector<int> resoudre(int borneMin, int borneMax, vector<int> poid) { vector<Molecule> poids; for (int i = 0; i < (int)poid.size();++i) poids.push_back({poid[i], i}); sort(poids.begin(), poids.end()); long long ptEnd = 0, sumCur = 0; for (int ptStart = 0; ptStart < (int)poids.size(); ++ptStart) { for (; ptEnd < (int)poids.size() && sumCur < borneMin; ++ptEnd) sumCur += poids[ptEnd].val; if (sumCur >= borneMin && sumCur <= borneMax) { vector<int> res; for (int id = ptStart; id < ptEnd; ++id) res.push_back(poids[id].id); return res; } sumCur -= poids[ptStart].val; } return {}; } vector<int> find_subset(int l, int u, vector<int> w) { return resoudre(l, u, w); }
#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...