답안 #60871

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
60871 2018-07-24T21:49:35 Z spencercompton Hotter Colder (IOI10_hottercolder) C++17
87 / 100
764 ms 8188 KB
#include "grader.h"
#include <bits/stdc++.h>
using namespace std;
int HC(int N){

	int lo = 1;
	int hi = N;
	int last = (int)((double)(lo+hi)/3.1);
	last = max(last,1);
	last = min(last,N);
	Guess(last);
	while(lo<hi){
		int now = hi - (last - lo);
		if(now<1 || now>N){
		    //idea 1
		    now = (lo+hi)/2;
		}
		now = max(now,1);
		now = min(now,N);
		// cout << "!"  << lo << " " << hi << " " << last << " " << now << endl;
		if(now==last && now-1>=lo){
			now--;
		}
		else if(now==last && now+1<=hi){
			now++;
		}
		else if(now==last){
			assert(false);
		}
		int res = Guess(now);
		if(res==0){
			// cout << "RETURN 1 " << (now+last)/2 << endl;
			return (now+last)/2;
		}
		int close = last;
		int far = now;
		if(res==1){
			swap(close,far);
		}
		if(close<far){
			int mid = (close+far-1)/2;
			hi = mid;
		}
		else{
			int mid = (close+far)/2 + 1;
			lo = mid;

		}
		last = now;
	}
	// cout << "RETURN 2 " << lo << endl;
	return lo;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 30 ms 1272 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 30 ms 1272 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 30 ms 1272 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Partially correct 764 ms 8188 KB Output is partially correct - alpha = 0.500000000000