#include <bits/stdc++.h>
#include "books.h"
using namespace std;
#define pb push_back
#define all(v) v.begin(),v.end()
using i64 = long long;
template<typename T>
using vec = vector<T>;
vec<i64> x(1e5 + 100,-1);
i64 get(int idx){
if (x[idx] != -1) return x[idx];
return x[idx] = skim(idx);
}
void solve(int N, int K, long long A, int S) {
i64 sm = 0;
for (int i = 1; i <= K-1; i++) sm += get(i);
int s = K,e = N,ans = -1;
while (s <= e){
int m = (s + e) / 2;
if (get(m) > A){
ans = m;
e = m-1;
}
else {
s = m+1;
}
}
if (ans == -1) ans = N;
vec<int> vecans(K);
iota(all(vecans),1);
if (sm + get(K) >= A && sm + get(K) <= 2 * A){
answer(vecans);
}
for (int i = 0; i < K; i++){
sm -= get(vecans[i]);
vecans[i] = ans - K + 1 + i;
sm += get(vecans[i]);
if (sm >= A && sm <= 2 * A){
answer(vecans);
}
}
impossible();
}
| # | 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... |