#301. [Extra Contest #9] Ternary Search

[Extra Contest #9] Ternary Search

注意

本题是交互题,请严格按照提交方式进行操作。

本题的交互库不是自适应的,排列 p\bm p 在交互开始前已经预先确定,不会在交互过程中动态改变。

题目描述

交互库有一个 1,2,…,1041, 2, \ldots, 10^4 的特殊排列 pp(下标从 11 开始),其中 10410^4 的下标 xx 能够使得 (pi+1−pi)(2i+1−2x)>0(p_{i + 1} - p_i)(2i + 1 - 2x) > 0 对所有的 i=1,2,…,104−1i = 1, 2, \ldots, 10^4 - 1 成立。

你有 100100 次查询 pp 中某一项的机会,请利用这些机会找到 10410^4 的下标 xx。

交互方式

本题是交互题。

在你输出一行后,请使用 fflush(stdout); / cout.flush(); / cout << endl; 清空缓冲区。

本题有且仅有一个测试点,该测试点中包含恰好 250250 组数据。

对于每组数据,你将进行至多 100100 轮交互:

  • 首先,你需要输出一行一个正整数 x (1≤x≤104)x\ (1 \le x \le 10^4),表示查询 pxp_x 的值。
  • 接下来,你需要读入一行一个正整数,表示 pxp_x 的值。
  • 当以下两个事件中的某一个发生时,你将结束本组数据的交互,并开始下一组数据的交互:
    • px=104p_x = 10^4。
    • 在该组数据中,你已经进行了 100100 轮交互。

如果你在每组数据中都找出了 10410^4 的下标 xx,那么你将 AC 该测试点。