本题是一道交互题,选手的程序可以向交互器进行若干询问,最后进行回答。具体交互方式请参考下方交互协议部分。
这是该问题的简单版本。不同版本之间的区别在于,在此版本中,你可以查询长度为 n 的任意序列。
定义:一个长度为 n 的排列是指由 1 到 n 的所有整数构成,每个数 恰好出现一次 的序列。
现在有一个长度为 n 的未知排列 p 。
为了确定排列 p ,你可以进行最多 n2 次查询,每次查询方式如下:
在完成最多 n2 次查询后,你需要输出排列 p 的全部元素。
请注意,排列 p 是在任何查询之前就固定的,且不依赖任何查询。
每个测试包含多个测试用例。
第一行输入一个整数 t(1 ≤ t ≤ 2500),表示测试用例数量。
每个测试用例包括一行一个整数 n(1 ≤ n ≤ 100),表示排列的长度。
保证所有测试用例的 n2 之和不超过 10000。
每个测试用例的程序交互应从读取整数 n 开始。
要进行查询,请按以下格式输出一行 n 个整数,表示你提供的 序列 a :
注意,你需要保证你输出的每个 ai 均不超过 32 位有符号整数可表示的范围。
然后你会收到一个整数 k(0 ≤ k ≤ n),表示 a 和 p 有多少位置是相同的。
要报告最终答案,请按以下格式输出一行:
请注意,回答问题不计入查询次数限制。
在输出答案后,您的程序应继续处理下一个测试用例,若无更多测试用例则终止程序。
此外,在每次输出完毕后,你都需要立即 刷新缓冲区 !你可以使用如下语句来刷新缓冲区:
对于 C++ 语言,在输出换行时如果你使用 std::endl 而不是 `\n' ,也可以自动刷新缓冲区。
2 1 3 0 1 2 3
! 1 ? -11 45 14 ? 1 2 3 ? 1 1 3 ? 2 1 3 ! 2 1 3
请注意,示例交互仅用于理解题意,并不保证能找到唯一排列 p 。