#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |