#include <bits/stdc++.h>
using namespace std;
#define int long long
int n,X0,Y0,_x,_y,cnt;
signed main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cin>>n>>X0>>Y0;
auto ask = [&](int x, int y)->bool{
cnt++;
assert(x<=n and y<=n);
cout<<"examine "<<x<<" "<<y<<endl;
string s;
cin>>s;
if(s[0]=='t') return 1;
return 0;
};
int l1,r1,l2,r2;
_x=X0,_y=Y0;
for(int i=1; ; i*=2){
int y=min(n,_y+i);
if(!ask(X0,y)){
int l=_y,r=y-1;
while(l<=r){
int mid=(l+r)>>1;
if(ask(X0,mid)){
r2=mid;
l=mid+1;
}else r=mid-1;
}
break;
}else{
if(y==n){
r2=n;
break;
}
_y+=i;
}
}
_x=X0,_y=Y0;
for(int i=1; ; i*=2){
int x=min(n,_x+i);
if(!ask(x,Y0)){
int l=_x,r=x-1;
while(l<=r){
int mid=(l+r)>>1;
if(ask(mid,Y0)){
l2=mid;
l=mid+1;
}else r=mid-1;
}
break;
}else{
if(x==n){
l2=n;
break;
}
_x+=i;
}
}
_x=X0,_y=Y0;
for(int i=1; ; i*=2){
int y=max(1ll,_y-i);
if(!ask(X0,y)){
int r=_y,l=y+1;
while(l<=r){
int mid=(l+r)>>1;
if(ask(X0,mid)){
r1=mid;
r=mid-1;
}else l=mid+1;
}
break;
}else{
if(y==1){
r1=1;
break;
}
_y-=i;
}
}
_x=X0,_y=Y0;
for(int i=1; ; i*=2){
int x=max(1ll,_x-i);
if(!ask(x,Y0)){
int r=_x,l=x+1;
while(l<=r){
int mid=(l+r)>>1;
if(ask(mid,Y0)){
l1=mid;
r=mid-1;
}else l=mid+1;
}
break;
}else{
if(x==1){
l1=1;
break;
}
_x-=i;
}
}
int m=r2-r1+1,cur=0;
int l=1,r=300000;
auto check = [&](int x, int y)->bool{
if(x<0 || y<0) return 0;
return ask(x,y);
};
while(l<=r){
int mid=(l+r)>>1;
if(check(l1-mid*m,r1-mid*m)){
cur=mid;
l=mid+1;
}else r=mid-1;
}
return 0;
r1-=m*cur;
l1-=m*cur;
cur=0;
l=1,r=300000;
while(l<=r){
int mid=(l+r)>>1;
if(check(l1-mid*m,r1)){
cur=mid;
l=mid+1;
}else r=mid-1;
}
l1-=cur*m;
cur=0;
l=1,r=300000;
while(l<=r){
int mid=(l+r)>>1;
if(check(l1,r1-mid*m)){
cur=mid;
l=mid+1;
}else r=mid-1;
}
r1-=cur*m;
l1+=(m-1)*m;
r1+=(m-1)*m;
l1+=m/2;
r1+=m/2;
cout<<"solution "<<l1<<" "<<r1<<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... |