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;
#define int long long
#define pb push_back
int n, k, a, s;
vector<int> v;
void ans_start(int idx) {
vector<signed> ans;
for(int i = idx; i < idx + k; i++) {
ans.pb(i);
}
answer(ans);
}
void solve(signed N, signed K, int A, signed S) {
n = N, k = K, a = A, s = S;
v.assign(1 + n, -1);
if(n <= s) {
for(int i = 1; i <= n; i++) {
v[i] = skim(i);
}
/*for(int i = 1; i <= n; i++) {
if(v[i] > a) {
n = i;
v.resize(n);
break;
}
}
if(n < k) {
impossible();
}*/
int sum = 0;
for(int i = 1; i <= k; i++) {
sum += v[i];
}
if(sum > 2 * a) {
impossible();
}
if(sum >= a) {
ans_start(1);
}
for(int j = 2; j + k - 1 <= n; j++) {
sum -= v[j - 1];
sum += v[j + k - 1];
if(sum >= a && sum <= 2 * a) {
ans_start(j);
}
}
sum = 0;
for(int i = 1; i <= k - 1; i++) {
sum += v[i];
}
int spec = -1;
for(int i = k; i <= n; i++) {
if(v[i] >= a) {
sum += v[i];
break;
}
}
if(spec != -1) {
if(sum >= a && sum <= 2 * a) {
vector<signed> ans;
for(int i = 1; i <= k - 1; i++) {
ans.pb(i);
}
ans.pb(spec);
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... |