#include <bits/stdc++.h>
#include "books.h"
using namespace std;
using i64 = long long;
template<typename T>
using vec = vector<T>;
void solve(int N, int K, long long A, int S) {
vec<i64> x(N+1,0);
vec<int> ans(K,0);
i64 currSum = 0;
for (int i = 1; i <= N; i++) x[i] = skim(i);
for (int i = 0; i < K; i++){
ans[i] = i+1;
currSum += x[i+1];
}
if (currSum >= A && currSum <= 2 * A) answer(ans);
while (currSum < A){
i64 mn = 1e18; int mnidx = -1;
for (int i = 0; i < K; i++){
int idx = ans[i];
if (i == K-1 || (idx + 1 != ans[i+1])){
if (idx < N){
if (x[idx+1] - x[idx] < mn){
mn = x[idx+1] - x[idx];
mnidx = i;
}
}
}
}
if (mnidx == -1) break;
currSum -= x[ans[mnidx]];
ans[mnidx] = ans[mnidx] + 1;
currSum += x[ans[mnidx]];
if (currSum >= A && currSum <= 2 * A){answer(ans);}
}
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... |