提供调试用的交互库
查看原帖
提供调试用的交互库
679936
sunkuangzheng楼主2024/1/9 13:20

如题,调用 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];
    }
}
2024/1/9 13:20
加载中...