Submission #433117

#TimeUsernameProblemLanguageResultExecution timeMemory
433117ritul_kr_singhA Difficult(y) Choice (BOI21_books)C++17
100 / 100
2 ms284 KiB
#include <bits/stdc++.h> #include "books.h" #define ll long long using namespace std; void solve(int N, int K, ll A, int S){ int x = 0; for(int y=1<<19; y/=2; ) if(x + y <= N && skim(x + y) < A) x += y; ++x; vector<pair<int, ll>> vals; for(int i=1; i<=K; ++i) vals.emplace_back(i, skim(i)); for(int i=max(K+1, x-K); i<x; ++i) vals.emplace_back(i, skim(i)); if(x<=N) vals.emplace_back(x, skim(x)); for(int i=1; i<=K+K; ++i){ if(i+K-1 > (int)vals.size()) break; ll sum = 0; vector<int> res(K); for(int j=0; j<K; ++j) sum += vals[i+j-1].second, res[j] = vals[i+j-1].first; if(A<=sum && sum<=A+A) return answer(res); } if(x <= N){ ll sum = 0; vector<int> res(K); for(int i=1; i<K; ++i) sum += vals[i-1].second, res[i-1] = i; sum += skim(x); res[K-1] = x; if(A<=sum && sum<=A+A) return answer(res); } impossible(); }
#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...