Submission #697788

#TimeUsernameProblemLanguageResultExecution timeMemory
697788Sandarach151A Difficult(y) Choice (BOI21_books)C++17
5 / 100
229 ms976 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...