Submission #1204044

#TimeUsernameProblemLanguageResultExecution timeMemory
1204044UnforgettableplA Difficult(y) Choice (BOI21_books)C++20
0 / 100
1 ms664 KiB
#include <bits/stdc++.h> #include "books.h" using namespace std; void solve(int N,int K,long long A,int S){ vector<int> memo(N+1); auto optSkim = [&](int x){ if(memo[x]==0)return memo[x]=skim(x); else return memo[x]; }; auto test = [&](int x){ int sum = 0; if(optSkim(x)>=A){ for(int i=1;i<K;i++)sum+=optSkim(i); sum+=optSkim(x); } else { for(int i=x-K+1;i<=x;i++)sum+=optSkim(i); } return A<=sum and sum<=2ll*A; }; int ans = K-1; for(int jump=(1<<16);jump;jump/=2){ if(ans+jump>N)continue; if(!test(ans+jump))ans+=jump; } ans++; if(ans==N+1 or !test(ans)){ impossible(); } else { vector<int> anss; if(optSkim(ans)>=A){ for(int i=1;i<K;i++)anss.emplace_back(i); anss.emplace_back(ans); } else { for(int i=ans-K+1;i<=ans;i++)anss.emplace_back(i); } answer(anss); } }
#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...