제출 #147138

#제출 시각아이디문제언어결과실행 시간메모리
147138triDetecting Molecules (IOI16_molecules)C++14
9 / 100
3 ms376 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; typedef pair<int, int> pi; typedef pair<ll, ll> pl; typedef vector<int> vi; typedef vector<ld> vd; typedef vector<ll> vl; #define pb push_back #define f first #define s second vi find_subset(int L, int U, vi w) { int N = w.size(); sort(w.begin(), w.end()); if (U < w[0]) { return {}; } ll sum = 0; int nA; for (nA = 0; nA < N; nA++) { sum += w[nA]; if (sum > U) { sum -= w[nA]; break; } } if (sum >= L) { vi ans; for (int i = 0; i < nA; i++) { ans.pb(i); } return ans; } if (nA == N) { assert(sum < L); return {}; } int last = N - 1; for (int i = nA - 1; i >= 0; i--) { assert(sum - w[i] + w[last] <= U); sum -= w[i]; sum += w[last]; if (sum >= L) { vi ans; for (int j = 0; j < i; j++) { ans.pb(j); } for (int j = last; j < N; j++) { ans.pb(j); } return ans; } last--; } return {}; }
#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...