CFCF2209C.Find the Zero
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
这是一个交互题。
给定一个整数 n。存在一个长度为 2n 的隐藏数组 a。从 1 到 n 的每个整数在 a 中都恰好出现一次,其余元素均为 0。
你可以进行如下类型的查询:
- 选择两个整数 i 和 j(1≤i,j≤2n,i=j),裁判会回应 1,如果 ai=aj,否则回应 0。
请在不超过 n+1 次查询内,找到任意一个满足 ak=0 的整数 k(1≤k≤2n)。注意交互方是自适应的,这意味着隐藏数组 a 可能会根据你的查询动态变化,但不会违反之前的查询结果。
输入格式
每组测试数据包含多个测试用例。第一行包含测试用例数 t(1≤t≤103)。接下来是各个测试用例的描述。
每个测试用例的第一行包含一个整数 n(2≤n≤104)。隐藏数组 a 的长度为 2n。
保证所有测试用例中 n 的总和不超过 104。
输出格式
(交互题,无需输出格式固定说明。)
输入输出样例
输入#1
2 2 0 1 3 1 0 0
输出#1
? 1 2 ? 3 1 ! 3 ? 5 6 ? 2 4 ? 1 3 ! 6
说明/提示
在第一个示例测试用例中,隐藏数组 a 为 [0,1,0,2]:
- 第一次查询,(i,j)=(1,2)。由于 a1=0,a2=1,a1=a2,裁判回应 0。
- 第二次查询,(i,j)=(3,1)。由于 a3=0,a1=0,a3=a1,裁判回应 1。
- 程序报告 k=3 作为答案。由于 a3=0,答案正确。
在第二个示例测试用例中,隐藏数组 a 为 [3,2,0,1,0,0]:
- 第一次查询,(i,j)=(5,6)。由于 a5=0,a6=0,a5=a6,裁判回应 1。
- 第二次查询,(i,j)=(2,4)。由于 a2=2,a4=1,a2=a4,裁判回应 0。
- 第三次查询,(i,j)=(1,3)。由于 a1=3,a3=0,a1=a3,裁判回应 0。
- 程序报告 k=6 作为答案。由于 a6=0,答案正确。