#1215. 面试
面试
题目描述
本题是交互题。
桌上有 堆石子,第 堆有 颗石子。通常每颗石子的质量都是 克,但所有石子中恰好有一颗特殊石子,其质量为 克。你不知道这颗特殊石子位于哪一堆。
你可以选择若干个不同的石子堆,询问这些堆中全部石子的总质量。请在每组测试中使用不超过 次询问,找出特殊石子所在的堆。
输入格式
交互开始时,交互器首先输出整数 ,表示测试组数。
对于每组测试,交互器依次输出:
- 一个整数 ,表示石子堆数量;
- 个整数 ,表示各堆的石子数量。
特殊石子所在的堆不会直接提供给选手程序。
本地测试所使用的隐藏输入文件格式如下:
第一行一个整数 。
对于每组测试:
- 第一行两个整数 ,其中 表示特殊石子所在的堆;
- 第二行 个整数 。
输出格式
若要进行一次询问,输出:
? k p_1 p_2 ... p_k
其中 , 是 个互不相同且位于 内的堆编号。交互器会返回这些堆中全部石子的总质量。
每组测试最多进行 次询问。
确定答案后,输出:
! m
其中 是你确定的特殊石子所在堆。最终答案不计入询问次数。
每次输出询问或答案后都必须换行并刷新输出缓冲区。
样例
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
样例说明
样例仅展示一种可能的交互过程。
第一组测试中,特殊石子位于第 堆,因此前四堆的总质量为 。
第二组测试中,特殊石子位于第 堆。询问第 堆时不会包含额外的 克,因此返回 。
数据范围
,,。
所有测试组的 之和不超过 ,每组测试的询问次数不能超过 。