제출 #1151588

#제출 시각아이디문제언어결과실행 시간메모리
1151588siewjhAliens (IOI07_aliens)C++20
100 / 100
1 ms408 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll N;
bool query(ll x, ll y){
	if (!(1 <= x && x <= N && 1 <= y && y <= N)) return 0;
	cout << "examine " << x << ' ' << y << endl;
	string res; cin >> res;
	return res == "true";
}
int main(){
	ll xi, yi; cin >> N >> xi >> yi;
	ll l = xi, r = xi, u = yi, d = yi;
	for (int i = 0; i < 3; i++){
		ll o = l;
		for (ll k = 30; k >= 0; k--)
			if (query(l - (1 << k), yi))
				l -= (1 << k);
		if (o == l) break;
	}
	for (int i = 0; i < 3; i++){
		ll o = r;
		for (ll k = 30; k >= 0; k--)
			if (query(r + (1 << k), yi))
				r += (1 << k);
		if (o == r) break;
	}
	for (int i = 0; i < 3; i++){
		ll o = u;
		for (ll k = 30; k >= 0; k--)
			if (query(xi, u - (1 << k)))
				u -= (1 << k);
		if (o == u) break;
	}
	for (int i = 0; i < 3; i++){
		ll o = d;
		for (ll k = 30; k >= 0; k--)
			if (query(xi, d + (1 << k)))
				d += (1 << k);
		if (o == d) break;
	}
	cout << "solution " << ((l + r) >> 1) << ' ' << ((u + d) >> 1) << endl; 
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...