Submission #846859

#TimeUsernameProblemLanguageResultExecution timeMemory
846859MinaRagy06A Difficult(y) Choice (BOI21_books)C++17
0 / 100
1 ms1216 KiB
#include <bits/stdc++.h> #ifdef MINA #include "grader.cpp" #endif #include "books.h" #define ll long long using namespace std; void solve(int n, int k, ll a, int Q) { ll b[n]; for (int i = 0; i < n; i++) { b[i] = skim(i + 1); } if (b[0] > 2 * a) { impossible(); } vector<int> rem; for (int i = 0; i < n; i++) { rem.push_back(i); } ll s = 0; vector<int> ans; while (k--) { bool done = 0; int prv = -1; for (auto i : rem) { if (a - s <= b[i]) { if (b[i] > 2 * a - s) { if (prv == -1) { impossible(); } s += b[prv]; ans.push_back(prv + 1); done = 1; break; } s += b[i]; ans.push_back(i + 1); done = 1; break; } prv = i; } if (!done) { s += b[rem.back()]; ans.push_back(rem.back() + 1); } vector<int> New; for (auto i : rem) { if (i == ans.back()) continue; New.push_back(i); } rem = New; } if (!(a <= s && s <= 2 * a)) { impossible(); } answer(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...
#Verdict Execution timeMemoryGrader output
Fetching results...