Submission #863576

#TimeUsernameProblemLanguageResultExecution timeMemory
863576TAhmed33A Difficult(y) Choice (BOI21_books)C++17
10 / 100
1 ms1016 KiB
#include <bits/stdc++.h>
#include <books.h>
using namespace std;
typedef long long ll;
void solve (int n, int k, ll a, int s) {
	map <int, ll> dd;
	int l = 1, r = n - k + 1;
	int ans = -1;
	while (l <= r) {
		int mid = (l + r) >> 1;
		long long sum = 0;
		for (int i = mid; i <= mid + k - 1; i++) {
			if (!dd.count(i)) dd[i] = skim(i);
			sum += dd[i];
		}
		if (sum >= a) {
			r = mid - 1; ans = mid;
		} else {
			l = mid + 1;
		}
	}
	if (ans == -1) impossible();
	long long t = 0;
	for (int i = ans; i <= ans + k - 1; i++) t += dd[i];
	if (t > 2 * a) impossible();	
	vector <int> ret;
	for (int i = ans; i <= ans + k - 1; i++) ret.push_back(i);
	answer(ret);
}
#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...