| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 918309 | aykhn | A Difficult(y) Choice (BOI21_books) | C++17 | 1 ms | 760 KiB |
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;
const int MXN = 1e5 + 5;
long long a[MXN];
long long val(long long i)
{
return !a[i] ? a[i] = skim(i) : a[i];
}
void solve(int N, int K, long long A, int S)
{
if (K > N)
{
impossible();
return;
}
long long l = 1, r = N + 1;
while (l < r)
{
long long mid = (l + r) >> 1;
if (val(mid) >= A) r = mid;
else l = mid + 1;
}
if (l < K)
{
impossible();
return;
}
if (l < N + 1)
{
long long res = 0;
for (long long i = 1; i < K; i++)
{
res += val(i);
}
res += val(l);
if (A <= res && res <= 2*A)
{
vector<int> v(K - 1);
iota(v.begin(), v.end(), 1);
v.push_back(l);
answer(v);
return;
}
}
long long m = l - 1;
set<long long> s;
// min sub
for (long long i = 1; i <= K; i++) s.insert(i);
// max sub
for (long long i = m - K + 1; i <= m; i++) s.insert(i);
vector<long long> arr;
for (long long x : s) arr.push_back(x);
long long res = 0;
for (long long i = 0; i < K; i++) res += val(arr[i]);
for (long long i = 0; i + K <= arr.size(); i++)
{
if (res >= A)
{
vector<int> v;
for (long long j = i; j < i + K; j++) v.push_back(arr[j]);
answer(v);
return;
}
if (i + K == arr.size()) break;
res -= val(arr[i]);
res += val(arr[i + K]);
}
impossible();
}
Compilation message (stderr)
| # | 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... | ||||
