#include <bits/stdc++.h>
using namespace std;
using ll = long long;
ll N;
bool whoAsk(ll x, ll y) {
    cout << "examine " << x << " " << y << "\n" << flush;
    string re;
    cin >> re;
    return re == "true";
}
ll find_k(ll x0, ll y0, int dx, int dy) {
    ll k = 1;
    while (true) {
        ll x = x0 + dx*2*k, y = y0 + dy*2*k;
        if (x < 1 || x > N || y < 1 || y > N) break;
        if (!whoAsk(x, y)) break;
        k <<= 1;
    }
    ll lo = 0, hi = k;
    while (lo < hi) {
        ll mid = (lo + hi + 1) >> 1;
        ll x = x0 + dx*2*mid, y = y0 + dy*2*mid;
        if (x >= 1 && x <= N && y >= 1 && y <= N && whoAsk(x, y))
            lo = mid;
        else
            hi = mid - 1;
    }
    return lo;
}
int main(){
    ll x0, y0;
    cin >> N >> x0 >> y0;
    ll kR = find_k(x0, y0, +1,  0);
    ll kL = find_k(x0, y0, -1,  0);
    ll kU = find_k(x0, y0,  0, +1);
    ll kD = find_k(x0, y0,  0, -1);
    ll x_min = x0 - 2*kL, x_max = x0 + 2*kR;
    ll y_min = y0 - 2*kD, y_max = y0 + 2*kU;
    ll Xc = (x_min + x_max) / 2;
    ll Yc = (y_min + y_max) / 2;
    cout << "solution " << Xc << " " << Yc << endl;
    return 0;
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |