#1215. 面试

面试

题目描述

本题是交互题。

桌上有 nn 堆石子,第 ii 堆有 aia_i 颗石子。通常每颗石子的质量都是 11 克,但所有石子中恰好有一颗特殊石子,其质量为 22 克。你不知道这颗特殊石子位于哪一堆。

你可以选择若干个不同的石子堆,询问这些堆中全部石子的总质量。请在每组测试中使用不超过 3030 次询问,找出特殊石子所在的堆。

输入格式

交互开始时,交互器首先输出整数 tt,表示测试组数。

对于每组测试,交互器依次输出:

  • 一个整数 nn,表示石子堆数量;
  • nn 个整数 a1,a2,,ana_1,a_2,\ldots,a_n,表示各堆的石子数量。

特殊石子所在的堆不会直接提供给选手程序。

本地测试所使用的隐藏输入文件格式如下:

第一行一个整数 tt

对于每组测试:

  • 第一行两个整数 n,mn,m,其中 mm 表示特殊石子所在的堆;
  • 第二行 nn 个整数 a1,a2,,ana_1,a_2,\ldots,a_n

输出格式

若要进行一次询问,输出:

? k p_1 p_2 ... p_k

其中 1kn1\le k\le np1,p2,,pkp_1,p_2,\ldots,p_kkk 个互不相同且位于 [1,n][1,n] 内的堆编号。交互器会返回这些堆中全部石子的总质量。

每组测试最多进行 3030 次询问。

确定答案后,输出:

! m

其中 mm 是你确定的特殊石子所在堆。最终答案不计入询问次数。

每次输出询问或答案后都必须换行并刷新输出缓冲区。

样例

2
5
1 2 3 4 5
11
6
3
7
1 2 3 5 3 4 2
12
6
? 4 1 2 3 4
? 2 2 3
? 1 2
! 2
? 4 2 3 5 6
? 2 1 4
! 7

样例说明

样例仅展示一种可能的交互过程。

第一组测试中,特殊石子位于第 22 堆,因此前四堆的总质量为 1+3+3+4=111+3+3+4=11

第二组测试中,特殊石子位于第 77 堆。询问第 2,3,5,62,3,5,6 堆时不会包含额外的 11 克,因此返回 2+3+3+4=122+3+3+4=12

数据范围

1t10001\le t\le10001n2×1051\le n\le2\times10^51ai1041\le a_i\le10^4

所有测试组的 nn 之和不超过 2×1052\times10^5,每组测试的询问次数不能超过 3030