#include "cup.h"
#include <bits/stdc++.h>
using namespace std;
vector<int> find_cup() {
int sx=-500000000,sy=-500000000;
int p=ask_shahrasb(sx,sy);
int x=0,y=0;
for(int i=0;i<29;i++){
if((p^ask_shahrasb(sx,sy-(1<<i)))>>(i+1)&1)y+=(1<<i);
}
int gx=sx,gy=sy;
if(gy+y-(1<<29)>=-1000000000){
gy+=y;
int q=ask_shahrasb(gx,gy);
if((q^ask_shahrasb(gx,gy-(1<<29)))>>(29+1)&1)y+=(1<<29);
}else{
y+=(1<<29);
gy+=y;
int q=ask_shahrasb(gx,gy);
if((q^ask_shahrasb(gx,gy+(1<<29)))>>(29+1)&1)y-=(1<<29);
}
vector<int>ans;
x=p^y;
ans.push_back(sx+x);
ans.push_back(sy+y);
return ans;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
204 KB |
Output is correct |