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;
//
// --- 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.
//
void solve(int n, int k, long long a, int s) {
long long arr[n];
vector<int> ans;
for(int i=0; i<n; i++){
arr[i] = skim(i+1);
}
long long cur = 0;
for(int i=0; i<k-2; i++){
cur+=arr[i];
ans.push_back(i+1);
}
int pos1 = k-2;
int pos2 = n-1;
while((arr[pos1]+arr[pos2]+cur)<a || 2*a<(arr[pos1]+arr[pos2]+cur)){
if((cur+arr[pos1]+arr[pos2])<a){
pos1++;
}
else{
pos2--;
}
if(pos1>=pos2){
break;
}
}
if(pos1<pos2 && (arr[pos1]+arr[pos2]+cur)>=a && 2*a>=(arr[pos1]+arr[pos2]+cur)){
ans.push_back(pos1+1);
ans.push_back(pos2+1);
answer(ans);
return;
}
vector<int> ans2;
long long cur2 = 0;
for(int i=n-k+2; i<n; i++){
cur2+=arr[i];
ans2.push_back(i+1);
}
pos1 = 0;
pos2 = n-k+1;
while((arr[pos1]+arr[pos2]+cur2)<a || 2*a<(arr[pos1]+arr[pos2]+cur2)){
if((cur2+arr[pos1]+arr[pos2])<a){
pos1++;
}
else{
pos2--;
}
if(pos1>=pos2){
break;
}
}
if(pos1<pos2 && (arr[pos1]+arr[pos2]+cur2)>=a && 2*a>=(arr[pos1]+arr[pos2]+cur2)){
ans2.insert(ans2.begin(), pos2+1);
ans2.insert(ans2.begin(), pos1+1);
answer(ans2);
return;
}
impossible();
return;
}
# | 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... |