如题,调用 IO::ask(x,y,z) 即可得到询问结果,会输出你的询问和答案。
namespace IO{
int a[N],n;
void init(int _n){
n = _n;
for(int i = 1;i <= n;i ++) a[i] = i;
shuffle(a+1,a+n+1,rd);
if(a[1] > a[2]) for(int i = 1;i <= n;i ++) a[i] = n - a[i] + 1;
for(int i = 1;i <= n;i ++) cout << a[i] << " ";
cout << "\n";
}int ask(int x,int y,int z){
cout << "? " << x << " " << y << " " << z << "\n";
if(min({x,y,z}) < 1 || max({x,y,z}) > n) {
cout << "Invaild query\n";
exit(0); return -1;
}
vector<int> res = {abs(a[x] - a[y]),abs(a[y] - a[z]),abs(a[z] - a[x])};
sort(res.begin(),res.end());
cout << res[1] << "\n";
return res[1];
}
}