Submission #411328

#TimeUsernameProblemLanguageResultExecution timeMemory
411328hibye1217Detecting Molecules (IOI16_molecules)C++17
100 / 100
67 ms6176 KiB
#include "molecules.h" #include <vector> #include <algorithm> #include <iostream> #define fr first #define sc second using ll = long long; using pii = std::pair<int, int>; using pll = std::pair<ll, ll>; std::vector<int> find_subset(int l, int u, std::vector<int> w) { std::vector<pii> v; int n = w.size(); for (int i = 0; i < n; i++){ v.push_back({ i, w[i] }); } sort(v.begin(), v.end(), [](pii a, pii b){ return a.sc < b.sc; }); ll sum = 0, mn = 1e15; for (pll p : v){ sum += p.sc; mn = std::min(mn, p.sc); } if (u < mn || sum < l){ return std::vector<int>(); } int st = 0, ed = 0; sum = v[0].sc; while (1){ if (l <= sum && sum <= u){ std::vector<int> res; for (int i = st; i <= ed; i++){ res.push_back(v[i].fr); } return res; } if (sum < l){ if (ed+1 == n){ break; } ed += 1; sum += v[ed].sc; } else{ sum -= v[st].sc; st += 1; } } return std::vector<int>(); }
#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...