二分
二分 https://atcoder.jp/contests/abc269/tasks/abc269_e
你可以询问 x属于(a,b) y属于(c,d) 的(x,y)的方格里有多少个放了把数码的皇后
解: 直接二分 x属于1-mid y属于1-n 问问是不是满足1-mid每一行都有格子是的话就得往mid+1 -r找
int n,x,y;
inline bool checky(int a,int b,int c,int d){
cout<<"? "<<a<<' '<<b<<' '<<c<<' '<<d<<endl;
int num;cin>>num;
if((d-c+1)==num) return false;
else return true;
}
inline bool checkx(int a,int b,int c,int d){
cout<<"? "<<a<<' '<<b<<' '<<c<<' '<<d<<endl;
int num;cin>>num;
if((b-a+1)==num) return false;
else return true;
}
inline void bsx(){
int l=1,r=n;
while (l < r){
int mid = l + r >> 1;
if (checkx(1,mid,1,n)) r = mid;
else l = mid + 1;
}
x=l;
}
inline void bsy(){
int l=1,r=n;
while (l < r){
int mid = l + r >> 1;
if (checky(1,n,1,mid)) r = mid;
else l = mid + 1;
}
y=l;
}
int main() {
std::ios::sync_with_stdio(false);
std::cin.tie(0);std::cout.tie(0);
cin>>n;
bsx();bsy();
cout<<'!'<<' '<<x<<' '<<y<<endl;
}
