U319587 【模板】三分 2

题目背景

**警告:P3382 的代码不能直接 AC 此题,请看好输入输出格式。** **但是,你可以令 $l=1$,$r=n$,并把 P3382 的 $f$ 函数计算改成:** ```cpp int f(int x) { cout y; return y; } ``` **注意,你最多只能计算 $f$ 函数 $140$ 次。**

题目描述

如题,给出一个定义域和值域均为 $\{1,2,3,\ldots,n\}$ 的函数 $f(x)$,保证 $\{f(1),f(2),f(3),\ldots,f(n)\}$ 是一个 $1 \sim n$ 的排列。 保证存在一个正整数 $x$($1 \le x \le n$),使得: 1. $f(x)=n$; 2. $\forall 1 \le i

输入格式

**本题是交互题(IO 交互)。** **每次输出后,请清空缓冲区。** - C / C++:`fflush(stdout) / cout.flush()`; - Java:`system.out.flush()`; - Python:`stdout.flush()`; - Pascal:`flush(output)`; - 其他:请自行查阅文档。 **否则,可能会导致 WA,RE,TLE,UKE 等问题。** 询问开始前,输入一行一个正整数 $n$,含义见题目描述。 接下来不超过 $140$ 行,每行一个正整数 $c$($1 \le c \le n$),代表该次询问中 $f(k)$ 的值。

输出格式

不超过 $140$ 行,每行一个非负整数 $k$($0 \le k \le n$),含义见题目描述。 **$k=0$ 的含义特殊,请看「提示说明」一栏。**

说明/提示

**样例解释:** $\{f(1),f(2),f(3),\ldots,f(10)\}=\{1,3,5,7,9,10,8,6,4,2\}$。 ------------ ```cpp #include "testlib.h" #include using namespace std; const int N = 1e6 + 5; int a[N]; int main(int argc, char* argv[]) { registerInteraction(argc, argv); cout.flush(); int n = inf.readInt(); int task; int ans; for(int i = 1; i