Submission #1297753

#TimeUsernameProblemLanguageResultExecution timeMemory
1297753Jawad_Akbar_JJA Difficult(y) Choice (BOI21_books)C++20
100 / 100
2 ms416 KiB
#include <iostream> #include <vector> #include "books.h" using namespace std; long long a[1<<17]; void solve(int n, int k, long long A, int s){ long long Sum = 0, lst = k; vector<int> Ans, ans; for (int i=1;i<=k;i++){ a[i] = skim(i); Sum += a[i]; Ans.push_back(i); } int l = k-1, r = n + 1; while (l + 1 < r){ int mid = (l + r) / 2; if (Sum - a[k] + skim(mid) > 2 * A) r = mid; else l = mid; } if (r == k){ impossible(); return; } for (int i=l;i>l-k;i--){ a[i] = skim(i); if (Sum - a[lst] + a[i] <= 2 * A) Sum += a[i] - a[lst--], Ans.pop_back(), ans.push_back(i); else break; } if (Sum < A){ impossible(); return; } Ans.insert(Ans.end(), begin(ans), end(ans)); 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...