제출 #1354036

#제출 시각아이디문제언어결과실행 시간메모리
1354036gvancakA Difficult(y) Choice (BOI21_books)C++20
0 / 100
0 ms344 KiB
#include <bits/stdc++.h>
#define f first
#define s second
#define pb push_back
#define mp make_pair
#include "books.h"

using namespace std;


void solve(int N, int K, long long A, int S) {
    // TODO implement this function
    int k=K;
    int x=A/K;
    
    int l=1,r=N;
    while (l<r){
    	int mid=(l+r)/2;
    	int y=skim(mid);
    	if (y<x) l=mid+1; else r=mid;
	}
	vector <pair <int,int> > v;
	v.clear();
	
	for (int i=max(1,l-K+2); i<=min(N,l+K-1); i++){
		int y=skim(i);
		v.pb(mp(y,i));
	}
	if (v.size()<K){
		impossible(); return ;
	}
	x=0;
	int ind=0,ind1=k;
	for (int i=0; i<k; i++){
		x+=v[i].f;
	}
	while (x<A || x>2*A ){
		if (ind1>=v.size()) break;
		x-=v[ind].f;
		ind++;
		x+=v[ind1].f;
		ind1++;
	}
	if (x<A || x>2*A){
		impossible(); return;
	}
	vector <int> ans;
	ans.clear();
	for (int i=ind; i<ind1; i++) ans.pb(v[i].s);
	answer(ans);
	
	
	
/*	int l1=l;
	int x=(2*A)/K;
    
    int l=1,r=N;
    while (l<r){
    	int mid=(l+r)/2;
    	int y=skim(mid);
    	if (y>x) r=mid-1; else l=mid;
	}
	
	if ()*/

    

}
/*
15 3 42 8
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21*/

/*
15 3 42 8
1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351
*/
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…