第一行输入一个正整数 , 表示隐藏数组 的长度.
交互
要购买购买一个具有 面的骰子,按照如下格式输出一行(不包含引号)
"! m"
要进行猜测,请按照如下格式输出一行(不包含引号)
"? index"
表示你指定的下标索引, 注意要求 . 此时会输入一个正整数 , 表示子数组 的最大值, 表示程序生成的随机数.
要输出答案,请按照如下格式输出一行(不包括引号)
"! ans"
表示你猜到的数组的元素最大值.
若在任何时候输入的数为-1,说明你的询问超出次数/询问不合法/回答不合法/答案错误/其他输入错误,此时,你需要直接退出程序,接收到Wrong Answer。否则,你可能会得到任意一种错误类型作为回应
输出询问或回答后,不要忘记输出换行并刷新缓存区。否则,您可能会收到 Time limit exceeded 判定。为此,请使用:
在 C++ 中 fflush(stdout)或 cout.flush()
在 Java 中 System.out.flush()
在 Pascal 中 flush(output)
在 Python 中 stdout.flush()
对于其他语言,请参阅其他语言的文档。
交互器是自适应的,在每一次猜测操作后,交互器都会重新调整隐藏数组 的元素位置。