This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#include "books.h"
using namespace std;
using ll = long long;
//
// --- Sample implementation for the task books ---
//
// To compile this program with the sample grader, place:
// books.h books_sample.cpp sample_grader.cpp
// in a single folder and run:
// g++ books_sample.cpp sample_grader.cpp
// in this folder.
//
const int MAXN = 1e5 + 123;
int a[MAXN];
bitset<MAXN> bs;
int get(int i) {
if (bs[i])
return a[i];
bs[i] = 1;
return a[i] = skim(i);
}
void solve(int n, int k, ll anssm, int s) {
ll sm = 0;
for (int i = 1; i <= k; ++i)
sm += get(i);
if (sm > anssm * 2) {
impossible();
return;
}
vector<int> els(k);
for (int i = 0; i < k; ++i)
els[i] = k - i;
if (sm >= anssm) {
answer(els);
return;
}
int lb = k, ub = n + 1;
while (ub - lb > 1) {
int mb = (lb + ub) / 2;
if (sm + get(mb) - get(k) > anssm * 2)
ub = mb;
else
lb = mb;
}
for (int i = 0; i < k; ++i) {
sm += get(lb - i) - get(k - i);
els[i] = lb - i;
if (sm >= anssm) {
answer(els);
return;
}
}
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... |