CF809B Glad to see you!
题目描述
这是一个交互题。你可以在输出格式部分看到有关刷新输出的信息。
在星期天,黑客 Leha 带着 Nura 离开了她住的房子,两人前往 Vičkopolis 最豪华的餐厅之一。抵达后,他们把车停在餐厅旁那个巨大的停车场,并匆匆走进了餐厅。
在餐厅里,一位彬彬有礼的服务员立刻为 Leha 和 Nura 送来了菜单,菜单上一共有 $n$ 道菜。有趣的是,所有菜品都用 $1$ 到 $n$ 的整数编号。经过一番思索,Nura 从菜单上点了恰好 $k$ 道不同的菜。为了打发主厨准备菜肴期间的等待时间,Nura 邀请 Leha 玩一个有助于互相了解的小游戏。
游戏本身非常简单:Nura 希望 Leha 猜出她点的所有菜中任意两道。同时,她只愿意回答一种类型的问题。Leha 可以说两个数 $x$ 和 $y$,其中 $1 \leq x, y \leq n$。之后,Nura 会为编号 $x$ 挑选某个菜 $a$,要求 $a$ 必须是她点过的菜($x$ 可以等于 $a$),并且 $|x-a|$ 的值最小。同理,她也为 $y$ 挑选菜 $b$。接下来,Nura 会告诉 Leha「TAK」,如果 $|x-a| \leq |y-b|$,否则回答「NIE」。不过,餐厅上菜很快,所以 Leha 最多只能提 $60$ 个问题。在此之后,他就应该说出 Nura 点的任意两道菜的编号。
请你帮助 Leha 解决这个问题!
输入格式
输入只有一行,包括两个整数 $n$ 和 $k$,表示菜单上的菜数以及 Nura 点的菜数,满足 $2 \leq k \leq n \leq 10^{5}$。
输出格式
如果你想给出答案,输出一个形如 $2\ x\ y$ 的字符串,表示你认为 Nura 点的两道菜编号为 $x$ 和 $y$,其中 $1 \leq x, y \leq n$ 且 $x \neq y$。输出后请刷新输出流并终止程序。
交互说明
你最多可向 Nura 询问 $60$ 次。每次询问格式为 $1\ x\ y$($1 \leq x, y \leq n$)。每个询问占一行。输出后必须刷新输出流。之后应从输入读取 Nura 对本次询问的答复。
每次询问后,评测程序会在输入流中输出一行「TAK」或者「NIE」,表示 Nura 的回答。
用以下方式刷新输出流(在输出完每次询问后):
- C++:fflush(stdout)
- Java:System.out.flush()
- Python:stdout.flush()
- Pascal:flush(output)
- 其他语言请参考相关文档
Hack 格式
若你想 Hack,需输入第一行为 $n$ 和 $k$($2 \leq k \leq n \leq 10^5$),第二行为递增排序的 $k$ 个不同整数 $a_1,a_2,\ldots,a_k$($1 \leq a_i \leq n$),表示 Nura 点的菜肴编号。你的解答程序无法读取这些答案。
说明/提示
示例中有三道菜。Nura 点了第 $2$ 和第 $3$ 道菜,Leha 需要猜出来。如果询问第一道菜($x=1$),她会选择第二道菜($a=2$)作为距离最小的点菜($|1-2|=1$)。对于第二道菜($x=2$)和第三道菜($x=3$),本身就是最佳选择($|2-2|=0$, $|3-3|=0$)。
例如,Leha 询问以下组合:
- $x=1$,$y=2$,回答是「NIE」,因为 $|1-2| > |2-2|$;
- $x=2$,$y=1$,回答是「TAK」,因为 $|2-2| \leq |1-2|$;
- $x=1$,$y=3$,回答是「NIE」,因为 $|1-2| > |3-3|$;
- $x=3$,$y=1$,回答是「TAK」,因为 $|3-3| \leq |1-2|$;
- $x=2$,$y=3$,回答是「TAK」,因为 $|2-2| \leq |3-3|$;
- $x=3$,$y=2$,回答是「TAK」,因为 $|3-3| \leq |2-2|$。
根据以上信息,可以推测 Nura 点的是第 $2$ 和第 $3$ 道菜。
由 ChatGPT 5 翻译