답안 #1101155

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1101155 2024-10-15T16:51:37 Z NoMercy Colors (BOI20_colors) C++17
0 / 100
1 ms 336 KB
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;

int ask (ll x) {
	cout << "? " << x << endl;
	int res;
	cin >> res;
	return res;
}

int32_t main () {

	// ios_base::sync_with_stdio(0); 
	// cin.tie(0); 
	// cout.tie(0); 

	ll N;
	cin >> N;
	ll ind = N;
	ll lo = 0, hi = N + 1, query = 0;
	while (lo + 1 < hi) {
		if (query == 64) assert(0);
		query ++;
		ll mid = (lo + hi) >> 1;
		// cout << lo << " " << mid << " " << hi << " " << ind << "\n";
		if (ind - mid >= 1) {
			if (ask (ind - mid) == 1) {
				hi = mid;
			} else {
				lo = mid;
			}
			ind = ind - mid;
		} else if (ind + mid <= N) {
			if (ask (ind + mid) == 1) {
				hi = mid;
			} else {
				lo = mid;
			}
			ind = ind + mid;
		} else {
			if (ind - 1 >= N - ind) {
				if (ask(1) == 1) {
					hi = ind - 1;
				} else {
					lo = ind - 1;
				}
				ind = 1;
			} else {
				if (ask(N) == 1) {
					hi = N - ind;
				} else {
					lo = N - ind;
				}
				ind = N;
			}
		}
	}
	cout << "= " << hi << endl;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 336 KB OK (2 queries)
2 Incorrect 1 ms 336 KB Wrong guess
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 336 KB OK (2 queries)
2 Incorrect 1 ms 336 KB Wrong guess
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 336 KB OK (2 queries)
2 Incorrect 1 ms 336 KB Wrong guess
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 336 KB OK (2 queries)
2 Incorrect 1 ms 336 KB Wrong guess
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 336 KB OK (2 queries)
2 Incorrect 1 ms 336 KB Wrong guess
3 Halted 0 ms 0 KB -