#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
bool ask(ll x,ll y){
cout<<"examine ";
cout<<x<<" "<<y<<" \n";
string q;
cin>>q;
return q=="true";
}
signed main(){
// cin.tie(0)->sync_with_stdio(0);
ll n,x,y;
cin>>n>>x>>y;
ll raya=1;
while(ask(x+raya,y)){
raya*=2;
if(x+raya>n){
raya=n-x;
break;
}
}
ll l,mid,r;
l=x,r=x+raya;
ll bestx=x;
while(l<=r){
mid=l+(r-l)/2;
if(ask(mid,y)){
l=mid+1;
bestx=mid;
}
else{
r=mid-1;
}
}
raya=1;
while(ask(bestx-raya,y)){
raya*=2;
if(bestx-raya<1){
raya=bestx;
break;
}
}
l=bestx-raya,r=bestx;
ll badx=x;
while(l<=r){
mid=l+(r-l)/2;
if(!ask(mid,y)){
l=mid+1;
badx=mid;
}
else{
r=mid-1;
}
}
badx+=1;
// cout<<badx<<" "<<bestx;
ll m=bestx-badx+1;
ll midx=bestx-(m/2);
ll besty,bady;
l=y;
raya=1;
while(ask(midx,y+raya)){
raya*=2;
if(y+raya>n){
raya=r-y+1;
}
}
l=y,r=y+raya;
besty=y;
while(l<=r){
mid=l+(r-l)/2;
if(ask(midx,mid)){
l=mid+1;
besty=mid;
}
else{
r=mid-1;
}
}
ll midy=besty-m/2;
// cout<<midx<<"--"<<midy;
bool still=true;
while(still==true){
still=false;
if(ask(midx-m,midy+m)){
still= true;
midx=midx-m;
midy=midy+m;
}
else if(ask(midx+m,midy+m)){
still= true;
midx=midx+m;
midy=midy+m;
}
else if(ask(midx-2*m,midy)){
still= true;
midx=midx-2*m;
}
}
cout<<"solution "<<midx+2*m<<" "<<midy-2*m;
}
# | 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... |