This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n,xi,yi;
map<pair<ll,ll>,bool> mp;
bool examine(ll x,ll y){
if(x<=0||y<=0||x>n||y>n)return 0;
if(mp.find({x,y})!=mp.end())return mp[{x,y}];
cout << "examine " << x << " " << y << endl;
string ret;
cin >> ret;
return mp[{x,y}]=(ret=="true");
}
int main(){
cin.tie(nullptr)->sync_with_stdio(false);
cin >> n >> xi >> yi;
ll l=xi,r=n;
for(ll i=1;xi+i<=n;i*=2){
if(examine(xi+i,yi)){
l=xi+i;
}else{
r=xi+i;
break;
}
}
while(l+1<r){
ll mid=(l+r+1)/2;
if(examine(mid,yi))l=mid;
else r=mid-1;
}
ll xr=l;
l=1,r=xi;
for(ll i=1;xi-i>0;i*=2){
if(examine(xi-i,yi)){
r=xi-i;
}else{
l=xi-i;
break;
}
}
while(l+1<r){
ll mid=(l+r)/2;
if(examine(mid,yi))r=mid;
else l=mid+1;
}
ll xl=r;
ll sz=xr-xl+1;
l=yi,r=n;
for(ll i=1;yi+i<=n;i*=2){
if(examine(xi,yi+i)){
l=yi+i;
}else{
r=yi+i;
break;
}
}
while(l+1<r){
ll mid=(l+r+1)/2;
if(examine(xi,mid))l=mid;
else r=mid-1;
}
ll yr=l;
ll xm=xr-((sz-1)/2);
ll ym=yr-((sz-1)/2);
ll L=xm-(2*sz),R=xm+(2*sz),T=ym+(2*sz),B=ym-(2*sz);
while(examine(L,ym))L-=2*sz;
while(examine(R,ym))R+=2*sz;
while(examine(xm,B))B-=2*sz;
while(examine(xm,T))T+=2*sz;
cout << "solution " << (L+R)/2 << " " << (T+B)/2 << endl;
}
| # | 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... |