Submission #574944

#TimeUsernameProblemLanguageResultExecution timeMemory
574944mdubaisiA Difficult(y) Choice (BOI21_books)C++14
0 / 100
2 ms976 KiB
#include <bits/stdc++.h>
#include "books.h"
#define all(v) (v.begin()), (v.end())
#define setall(a, val) memset(a, val, sizeof a)
#define ll long long
using namespace std;

void solve(int N, int K, ll A, int S) {
	vector<ll> v(N + 1, 0);
	vector<int> ans;
	int l = 1, r = N - K + 1;
	while (l <= r) {
		ans.clear();
		int mid = (l + r) / 2;
		ll s = 0;
		for (int i = mid - K / 2; i < mid + K / 2 + (K % 2); i++) {
			ans.push_back(i);
			if (!v[i])
				v[i] = skim(i);
			s += v[i];
		}
		if (s < A)
			l = mid + 1;
		else if (s > 2 * A)
			r = mid - 1;
		else {
			answer(ans);
			return;
		}
	}
	impossible();
}
#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...