#include <bits/stdc++.h>
#include "books.h"
using namespace std;
using ll = long long;
vector<ll>memo;
int n,k,s;
ll a;
ll ask(int i){
if(memo[i]==-1)return memo[i]=skim(i+1);
else return memo[i];
}
int bs(ll x,int l,int r){
if(l==r)return l;
int m=(l+r)/2;
ll y=ask(m);
if(x==y)return m;
else if(x<y)return bs(x,l,m);
else return bs(x,m+1,r);
}
void solve(int N, int K, long long A, int S) {
n=N,k=K,a=A,s=S;
memo=vector<ll>(n,-1);
int x=bs(a/k,0,n-1);
vector<pair<ll,int>>v;
for(int i=max(0,x-10);i<min(n,x+10);i++){
v.push_back({ask(i),i+1});
}
for(int i=0;i+k<v.size();i++){
ll sum=0;
vector<int>ans;
for(int j=i;j<i+k;j++){
sum+=v[j].first;
ans.push_back(v[j].second);
}
if(sum>=a&&sum<=2*a){
answer(ans);
return;
}
}
impossible();
return;
}
| # | 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... |