rt,为什么最后两个点总是T啊
#include <bits/stdc++.h>
#define int unsigned long long
using namespace std;
int t,sum=1;
int a[3]={0,399999949,249983999},b[3];
int gcd(int x,int y){
if(x%y==0) return y;
else return gcd(y,x%y);
}
signed main(){
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
cin>>t;
while(t--){
cout<<"? 399999949"<<std::endl; fflush(stdout);
cin>>b[1]; fflush(stdout);
if(a[2]==-1) return 0; fflush(stdout);
cout<<"? 249983999"<<std::endl; fflush(stdout);
cin>>b[2]; fflush(stdout);
if(b[2]==-1) return 0; fflush(stdout);
int ans=b[1],i=1; fflush(stdout);
sum=sum*a[i]/gcd(sum,a[i]); fflush(stdout);
while(ans%a[i+1]!=b[i+1])
ans+=sum; fflush(stdout);
cout<<"! "<<ans<<std::endl; fflush(stdout);
}
return 0;
}