对于每组数据,如果你存在某种操作顺序,使得你必然可以赢得游戏,你会和交互器交互 k(1≤k≤⌈2n⌉) 次。
对于每次交互:
首先,你输出一个整数 pos(1≤pos≤n),代表你取出的数字的下标,请注意,你必须取出当前数组 a 最左端或者最右端的数字,且在该数字放入数组 b 中后,数组 b 严格单调递增。
在你每次输出一个整数后,交互器会输出一个数字 pos(1≤pos≤n),代表你的朋友取出的数字的下标,保证你朋友取出的数字是符合题目要求的。
假如说,你的朋友已经无法取出数字,即你已经胜利,那么交互器会返回 0。
否则,你只会和交互器交互 1 次。
如果你认为,在你的朋友每次取数字都做出最优操作的情况下,你不可能赢得游戏的胜利,请直接输出一个 0 。
如果你的判断正确,交互器会返回一个数字 0。
假如你的判断不正确或者给出的操作不合法,交互器会返回 −1。如果收到错误答案的判断,程序应立即终止。否则,你的代码可能会得到 Wrong Answer 以外的结果。
在每次输出后,不要忘记刷新缓冲区,不然,你会得到 Idleness limit exceeded 或者 Time limit exceeded,为了避免这一点,请使用:
- C++ 中的 fflush(stdout) 或 cout.flush();
- Java 中的 System.out.flush();
- Pascal 中的 flush(output);
- Python 中的 stdout.flush();
- 其他语言请参见文档。