本题是一道交互题。
Dadas 选择一个排列 ,其中 到 的每个整数恰好出现一次。排列 在交互开始前就已经固定,并且不会向参赛者公开。
你的目标是通过询问准确确定排列 。
每次询问时,你需要给出一个排列 ,其中 到 的每个整数恰好出现一次。交互器定义排列 :
并只返回 的循环分解中最长循环的长度。
本题是一道交互题。
交互开始时,参赛者程序会读入
参赛者程序最多可以进行 次 ? 形式的询问。进行询问时,按以下格式输出。
必须是一个包含 到 每个整数恰好一次的排列。允许多次询问同一个排列。输出询问后,必须刷新输出缓冲区。
每次合法询问后,程序会读入一个整数 。 是由 定义的排列 的最长循环长度。
确定排列 后,按以下格式输出最终答案。
最终答案的 ! 输出不计入 次询问限制。如果最终答案与隐藏排列 不同,则答案错误。输出最终答案后也必须刷新输出缓冲区,并立即结束程序。
如果输出了非法询问,或者进行了超过 次 ? 形式的询问,可能会读入 -1。此时必须立即结束程序。
交互示例
考虑 ,隐藏排列为 的情况。实际交互中不会给出 。
3。? 1 2 3 并刷新缓冲区。此时 ,因此交互器发送 3。? 3 1 2 并刷新缓冲区。此时 ,因此交互器发送 1。! 2 3 1,刷新缓冲区并退出程序。本例仅说明通信格式和响应的含义,不提供恢复排列的一般方法。
?? 形式的询问最多进行 次。