有 $n$ 朵花从左到右排成一行,依次编号为 1 到 $n$。每朵花要么是百合,要么是玫瑰。对于 $0$ 到 $n$ 之间的整数 $j$(包含 $0$ 和 $n$),令 $l_j$ 表示最左侧 $j$ 朵花中百合的数量,令 $r_j$ 表示最右侧 $n - j$ 朵花中玫瑰的数量。
最初,你只知道花的数量 $n$。花的种类是隐藏的。你可以通过询问来获取有关花的信息。每次询问可以执行以下操作之一:
类型询问(Type query):指定一个 $1$ 到 $n$ 之间的整数 $i$。你将收到第 $i$ 朵花的种类。
乘法询问(Multiply query):指定一个 $0$ 到 $n$ 之间的整数 $j$。你将收到 $l_j \times r_j$ 的值。
你的任务是通过有限次数的询问,找到一个 $0$ 到 $n$ 之间的整数 $k$,使得 $l_k = r_k$。你可以假设对于给定的花卉排列,至少存在一个这样的整数。注意,你不需要确定每一朵花的种类。
交互
输入的第一行包含一个整数 $t$ ($1 \le t \le 100$),表示测试用例的数量。随后是 $t$ 个测试用例。每个测试用例的格式如下:
每个测试用例的第一行包含一个整数 $n$ ($1 \le n \le 100$)。读取该值后,你的程序可以开始进行询问。对于每次询问,你的程序应输出一行,包含以下内容之一:
- “type $i$”:执行类型询问,指定整数 $i$ ($1 \le i \le n$)。作为响应,你将从输入中读取一行字符串(lily 或 rose),表示第 $i$ 朵花的种类。
- “multi $j$”:执行乘法询问,指定整数 $j$ ($0 \le j \le n$)。作为响应,你将从输入中读取一行整数,表示 $l_j \times r_j$ 的值。
每个测试用例允许进行最多 10 次询问。这意味着类型询问和乘法询问的总次数不得超过 10 次。如果你的程序询问次数超过 10 次,将被判为“Wrong Answer”。
当你的程序确定了一个满足 $l_k = r_k$ 的整数 $k$ 时,应输出一行格式为“answer $k$”的内容 ($0 \le k \le n$)。注意,输出答案不计入询问次数。
题目保证至少存在一个正确的输出。如果存在多个正确的输出,接受其中任何一个即可。
输出答案行后,你的程序应开始处理下一个测试用例。当所有 $t$ 个测试用例处理完毕后,交互结束,你的程序应终止。
关于交互式评测的说明:
- 评测是非对抗性的,这意味着花的种类是预先选定的,而不是根据你的询问实时生成的。
- 输出后请务必刷新缓冲区。详情请参阅“评测细节”文档。
- 你将获得一个用于本地测试的命令行工具,以及与样例交互对应的输入文件。你可以从 DOMjudge 下载这些文件。工具顶部有关于其用法的注释。
样例
输入 1
2 9 lily rose 6 3 3 0 rose
输出 1
type 8 type 1 multi 6 multi 3 answer 5 multi 3 type 3 answer 3
说明 1
对于第一个测试用例,九朵花的排列如下图所示。响应第三次询问时,返回 $l_6 \times r_6 = 3 \times 2 = 6$;响应第四次询问时,返回 $l_3 \times r_3 = 1 \times 3 = 3$。由于 $l_5 = r_5 = 3$,因此 $k = 5$ 是一个正确的输出。
对于第二个测试用例,假设所有三朵花都是玫瑰。