改了好多次了,一直没过
另外求关于这种题目的ans赋值策略
#include<bits/stdc++.h>
#define int long long
using namespace std;
signed main(){
int t;
scanf("%lld",&t);
while(t--){
int l=1,r=1005,l1,l2,ans;
while(l<=r){
l1=l+(r-l)/3;
l2=r-(r-l)/3;
printf("? %lld %lld",l1,l2);
cout<<endl;
int s;
scanf("%lld",&s);
if(s==(l1+1)*(l2+1)){
r=l1-1;
ans=l1;
}
else if(s==l1*(l2+1)){
l=l1+1;
ans=l1+1;
r=l2-1;
}
else{
ans=l2+1;
l=l2+1;
}
}
printf("! %lld",ans);
cout<<endl;
}
return 0;
}