제출 #410075

#제출 시각아이디문제언어결과실행 시간메모리
410075dreezy커다란 상품 (IOI17_prize)C++17
20 / 100
94 ms328 KiB
#include "prize.h"
#include <bits/stdc++.h>
using namespace std;

/*********************************************************************************************************************/

int find_best(int n) {
	
	int curtotal = -1;
	for(int i =0; i<10; i++){
		vector<int> res= ask(n/10 *i);
		if( !res[0] && !res[1]) return n/10 *i;
		curtotal = max(curtotal,res[0] +res[1]);
	}
	//cout <<":"<<curtotal<<endl;
	
	set<int> targets;
	for(int i =1; i<=curtotal; i++){
		targets.insert(i);
	}
	
	int left = 0, right = n-1;
	int target = *targets.begin();
	
	while(true){
		int ind = (left +right) /2 ;

		vector<int> res = ask(ind);
		
		if(res[0] + res[1] == 0)
			return ind;
		if(res[0] + res[1] < curtotal){
			ind++; 
			continue;
		}
		
		if(res[0] < target){
			left = ind +1;
		}
		else{
			right = ind - 1;
		}

	}
	
	return 0;
}


/*********************************************************************************************************************/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...