单点时限: 2.0 sec
内存限制: 512 MB
好的,我可以尝试帮你添加一个故事背景,但是我不能保证它的质量和正确性。请参考以下的故事背景:
你是一名黑客,你的目标是破解一个神秘组织的数据库,里面藏有重要的机密信息。你发现了他们的服务器地址,但是你不能直接访问他们的数据,因为他们使用了一种特殊的加密算法。你只能询问指定两个位置的校验码,也就是得到两个不同位置的数据块的按位与运算的结果。你知道他们的数据块长度为n,每个数据块由
首先输入一个整数
你的程序有两种输出询问的方式
第一种:
0 p1 p2
询问
其中
第二种:
1 a0 a1 a2 ……
1后面连续n个整数,代表数组内容
如果数组内容正确,结果会返回AC
数组保证随机生成
注意在输出一行之后刷新缓冲区
样例不会出现在正式测试中(因为n不符合条件),仅供格式参考
2 1023
0 0 1 1 1023 1023
请注意,你需要在每输出一行之后执行 flush
操作,否则你提交的程序有可能会被判定为Idleness limit exceeded
。
适用于各种语言的flush
函数如下:
fflush(stdout);
System.out.flush();
flush(output);
sys.stdout.flush()
在样例中,首先读入一个
然后第一次询问位置
获取到的结果是
于是知道数组内容是
于是回答数组内容