Submission #249811

#TimeUsernameProblemLanguageResultExecution timeMemory
249811hhh07Detecting Molecules (IOI16_molecules)C++14
100 / 100
61 ms7164 KiB
#include <iostream> #include <vector> #include <algorithm> #include <queue> #include <utility> #include <set> #include <cmath> #include <climits> #include <cstring> using namespace std; typedef long long ll; typedef vector<int> vi; typedef pair<ll, ll> ii; vi find_subset(int l, int u, vi w){ vi result; ll n = w.size(); ii x[n]; for (ll i = 0; i < n; i++) x[i] = {w[i], i}; sort(x, x + n); ll s = 0, curr = 0; bool t = false; for (ll i = 0; i < n; i++){ w[i] = x[i].first; s += w[i]; curr = i; if (s >= l && s <= u){ for (ll j = 0; j <= i; j++) result.push_back(x[j].second); return result; } if (s >= l){ s -= w[i]; t = true; break; } } if (!t) return result; for (ll i = curr; i < n; i++){ w[i] = x[i].first; s += w[i] - w[i - curr]; if (s >= l && s <= u){ for (ll j = i - curr + 1; j <= i; j++) result.push_back(x[j].second); return result; } } return result; }
#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...