Submission #1334279

#TimeUsernameProblemLanguageResultExecution timeMemory
1334279i271828A Difficult(y) Choice (BOI21_books)C++20
0 / 100
1 ms552 KiB
#include "books.h"
#include <bits/stdc++.h>
#define pii pair<int,int>
#define ll long long
using namespace std;

const int MAX=1e3+5;
ll V[MAX];

ll qry(int i){
	if (V[i]!=-1) return V[i];
	return V[i]=skim(i+1);
}

void solve(int N, int K, long long A, int S) {
	fill_n(V,N,-1);
	int l=0,r=N;
	while (l!=r){
		int m=(l+r)>>1;
		if (qry(m)>=A) r=m;
		else l=m+1;
	}
	if (l<K-1) impossible();
	if (l!=N){
		vector<int> ans;
		ll t=qry(l);
		ans.push_back(l);
		for (int i=0;i<K-1;i++) t+=qry(i),ans.push_back(i);
		if (t<=2*A) answer(ans);
	}
	for (int j=0;j<=K;j++){
		vector<int> ans;
		ll t=0;
		for (int i=0;i<K-j;i++) t+=qry(i),ans.push_back(i);
		for (int i=l-1;i>=l-j;i++) t+=qry(i),ans.push_back(i);
		if (t>=A&&t<=2*A) answer(ans);
		cout<<j<<' '<<t<<'\n';
	}
	impossible();
}
#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...