你需要从标准输入读入一个正整数 ,表示排列的长度。
对于第一种询问,你需要向标准输出输出一个字符 ?、一个整数 ,一个整数 以及 个互不相同的整数 (),注意此类询问至多使用 次。
对于第二种询问,你需要向标准输出输出一个字符 ?、一个整数 ,一个整数 以及 个互不相同的整数 (),注意此类询问至多使用 次。
然后你需要清空缓冲区。你可以使用如下语句来清空缓冲区:
- C++:
fflush(stdout);
- Java:
System.out.flush();
- Python:
stdout.flush();
- Pascal:
flush(output);
- 其他语言请参考相关文档。
接下来,你需要从标准输入中输入一个整数,代表评测机返回的结果。
询问结束后,你需要先向标准输出输出字符 !,然后输出一个整数 ,表示排列中 的位置。输出后,你的程序应立即终止。
如果在某个时刻你的程序读取到 作为答案,它应立即退出(例如,通过调用 exit(0))。这种情况下,你将得到“Wrong Answer”,这意味着你提出的问题超过限制或提出了无效问题。如果你忽略这一点,可能会因为程序继续从已关闭的流中读取而得到其他判定结果。