logo AlgoBeat OnlineJudge
登录 注册

#213792. 【MX-X22-T5】「TPOI-4E」Get MiN? Get MeX!

内存限制:512 MiB 时间限制:1000 ms 标准输入输出
题目类型:VJudge(洛谷) 评测方式:VJudge
上传者: 匿名

题目描述

这是一道交互题。

有一个隐藏的 的排列 这个排列是在你开始询问前就预先确定的,并且这个排列不会随着你的询问而改变,你可以对这个排列进行若干次询问:

  • 给定一个集合 ,交互库给出 的值,此类询问至多使用 次。

  • 给定一个集合 ,交互库给出 的值,此类询问至多使用 次。

的含义为集合 中最小未出现过的非负整数。

询问之后,你需要计算出排列中 的位置。

输入格式

见【输出格式】。

输出格式

你需要从标准输入读入一个正整数 ,表示排列的长度。

对于第一种询问,你需要向标准输出输出一个字符 ?、一个整数 ,一个整数 以及 个互不相同的整数 ),注意此类询问至多使用 次。

对于第二种询问,你需要向标准输出输出一个字符 ?、一个整数 ,一个整数 以及 个互不相同的整数 ),注意此类询问至多使用 次。

然后你需要清空缓冲区。你可以使用如下语句来清空缓冲区:

  • C++:fflush(stdout)
  • Java:System.out.flush()
  • Python:stdout.flush()
  • Pascal:flush(output)
  • 其他语言请参考相关文档。

接下来,你需要从标准输入中输入一个整数,代表评测机返回的结果。

询问结束后,你需要先向标准输出输出字符 !,然后输出一个整数 ,表示排列中 的位置。输出后,你的程序应立即终止。

如果在某个时刻你的程序读取到 作为答案,它应立即退出(例如,通过调用 exit(0))。这种情况下,你将得到“Wrong Answer”,这意味着你提出的问题超过限制或提出了无效问题。如果你忽略这一点,可能会因为程序继续从已关闭的流中读取而得到其他判定结果。

样例

样例输入 1

6

4

2

1

-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:保证排列纯随机生成。

对于所有数据,保证