제출 #821233

#제출 시각아이디문제언어결과실행 시간메모리
821233vjudge1커다란 상품 (IOI17_prize)C++17
0 / 100
61 ms300 KiB
#include "prize.h"
#include<bits/stdc++.h>

using namespace std;

const int B = 480;

int find_best(int n) {
	int mx = 0;
	for(int i = 0; i < min(B, n); i++) {
		auto x = ask(i);
		if(!(x[0] + x[1])) return i;
		if(x[0] + x[1] > mx) 
			mx = x[0] + x[1];
	}
	for(int i = 0; i < n; i++) {
		auto x = ask(i);
		if(!(x[0] + x[1])) return i;
		if(x[0] + x[1] == mx) {
			int lb = i, rb = n;
			while(rb - lb > 1) {
				int mid = (2 * lb + rb) / 3;
				auto y = ask(mid);
				if(y[0] + y[1] < mx) {
					rb = mid;
					continue;
				}
				if(y[0] == x[0]) lb = mid;
				else rb = mid; 
			}
			i = lb;
		}
	}
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...