#P14134. 【MX-X22-T5】「TPOI-4E」Get MiN? Get MeX!
【MX-X22-T5】「TPOI-4E」Get MiN? Get MeX!
题目描述
这是一道交互题。
有一个隐藏的 的排列 ,这个排列是在你开始询问前就预先确定的,并且这个排列不会随着你的询问而改变,你可以对这个排列进行若干次询问:
-
给定一个集合 ,交互库给出 的值,此类询问至多使用 次。
-
给定一个集合 ,交互库给出 的值,此类询问至多使用 次。
的含义为集合 中最小未出现过的非负整数。
询问之后,你需要计算出排列中 的位置。
输入格式
见【输出格式】。
输出格式
你需要从标准输入读入一个正整数 ,表示排列的长度。
对于第一种询问,你需要向标准输出输出一个字符 ?
、一个整数 ,一个整数 以及 个互不相同的整数 (),注意此类询问至多使用 次。
对于第二种询问,你需要向标准输出输出一个字符 ?
、一个整数 ,一个整数 以及 个互不相同的整数 (),注意此类询问至多使用 次。
然后你需要清空缓冲区。你可以使用如下语句来清空缓冲区:
- C++:
fflush(stdout)
; - Java:
System.out.flush()
; - Python:
stdout.flush()
; - Pascal:
flush(output)
; - 其他语言请参考相关文档。
接下来,你需要从标准输入中输入一个整数,代表评测机返回的结果。
询问结束后,你需要先向标准输出输出字符 !
,然后输出一个整数 ,表示排列中 的位置。输出后,你的程序应立即终止。
如果在某个时刻你的程序读取到 作为答案,它应立即退出(例如,通过调用 exit(0)
)。这种情况下,你将得到“Wrong Answer”,这意味着你提出的问题超过限制或提出了无效问题。如果你忽略这一点,可能会因为程序继续从已关闭的流中读取而得到其他判定结果。
6
4
2
1
-1
? 1 5 1 2 3 4 5
? 1 4 1 2 5 6
? 1 1 3
? 2 1 3
! 3
提示
【样例解释】
样例仅供展示交互格式,不保证样例输出策略的合理性。
隐藏的排列为 。
【数据范围】
本题采用捆绑测试。
子任务编号 | 特殊性质 | 分值 | 子任务依赖 | |
---|---|---|---|---|
无 | 无 | |||
^ | ||||
A | 无 | |||
^ | B | |||
无 | ||||
^ | ||||
- 特殊性质 A:保证排列中前 个数为偶数,后 个数为奇数。
- 特殊性质 B:保证排列纯随机生成。
对于所有数据,保证 。