| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 1127111 | ZeroCool | A Difficult(y) Choice (BOI21_books) | C++20 | 0 ms | 0 KiB | 
#include <bits/stdc++.h>
//#include "books.h"
using namespace std;
#define all(a) begin(a),end(a)
void solve(int n, int K, long long X, int S) {
    vector<int> A(n);
	vector<int> ans(K,0); 
    iota(all(ans), 1);
    int sum = 0;
	for(int i = 1; i <= K; i++){
		A[i] = skim(i);
        sum += A[i];
    }
	if(sum > 2*X) impossible();
	int l = K, r = n;
	while(l < r){
		int mid = (l + r + 1) / 2;
		if(sum - A[K] + skim(mid) <= 2 * X) l = mid;
		else r = mid - 1 ;
	}
	deque<int> dq(K, 0); 
    iota(all(dq), 1);
	for(int i = 0; i <= K; i++){
		sum -= A[K - i];
        sum+=skim(l - i);
		dq.pop_back(); 
        dq.push_front(l - i);
		if(sum >= X) answer(vector<int>(all(dq)));
	}
	impossible();
}
