QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 2048 MB Total points: 100

#14333. Secret Lilies and Roses

统计

有 $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$ 是一个正确的输出。

对于第二个测试用例,假设所有三朵花都是玫瑰。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.