QOJ.ac

QOJ

時間限制: 1.0 s 記憶體限制: 512 MB 總分: 100 互動

#7531. 破解项目

统计

这是一个交互式问题。

Lewis 是新编程语言 DiverC 的开发者之一。该语言编写的程序的主要特点是代码由两两不同的单词组成。Lewis 开发的 DiverC 编译器本身也是用 DiverC 编写的,由 $N$ 个两两不同的单词组成。

Lewis 正在使用 DiverC 在线自动补全服务。但 Lewis 犯了一个严重的错误:他忘记关闭“使用我的数据改进服务数据库”功能。Lewis 是第一个注册该服务的用户,因此现在该服务仅包含他编译器中的单词。

黑客 Fernando 想知道 Lewis 在编译器中使用的所有单词。于是他在 DiverC 在线自动补全服务上注册(明智地关闭了危险功能),现在,对于 Fernando 输入的每个前缀 $S$ 和整数 $K$,服务会按字典序返回 Lewis 代码中以 $S$ 为前缀的前 $K$ 个单词。如果只有 $k < K$ 个单词,服务仅给出 $k$ 个单词(但即使在这种情况下,服务使用计数器也会增加 $K$)。

Fernando 查看了用于在线服务的脚本,发现一个用户的 $K$ 值总和被限制为 $3\,800$。他希望通过若干次查询确定 Lewis 使用的所有 $N$ 个单词,使得这些查询中 $K$ 的总和不超过 $3\,800$。

你能帮帮他吗?

交互

首先,你的程序应读取一个整数 $T$ —— 需要处理的测试用例数量 ($1 \le T \le 5$)。

在每个测试用例开始时,评测程序会给出一个整数 $N$ —— Lewis 的 DiverC 编译器中的单词数量 ($1 \le N \le 1\,000$)。

你的程序可以进行两种类型的请求:

  • query S K —— 获取以 $S$ 为前缀的字典序最小的 $K$ 个单词 ($1 \le K \le N$, $1 \le |S| \le 10$)。如果字典中只有 $k$ 个这样的单词,且 $k < K$,则查询的回答将包含 $k$ 个单词。查询的响应将是一行格式为 $k S_1 S_2 \dots S_k$ 的内容,其中 $k$ 是单词数量 ($0 \le k \le K$),随后是按字典序排列的 $k$ 个单词 $S_i$。
  • answer S_1 S_2 \dots S_N —— 回答 Lewis 的完整词典。在 answer 单词之后,你需要以任意顺序打印所有 $N$ 个单词,单词间用空格分隔。评测程序不会对该请求做出响应,你的程序随后应继续处理下一个测试用例,或者如果当前是最后一个测试用例,则退出。

Lewis 代码中的单词由小写英文字母组成。单词长度在 1 到 10 个字符之间。Lewis 代码中的所有单词两两不同。

每个测试中第一类查询的 $K$ 之和应不超过 $3\,800$。

违反交互协议或超过 $K$ 的总和限制会导致“Wrong answer”判决。

请确保在每次查询后打印换行符,并在每次请求后刷新输出流缓冲区(使用语言提供的 flush 命令)。否则,你的程序可能会得到“idleness limit exceeded”判决。

注意,评测程序是自适应的,即 Lewis 的单词集可能是在运行时生成的,但该集合保证与之前查询的回答一致。

样例

输入 1

1
4
1 aaa
2 aaa aba
1 cxyxy
0
1 czzzz

输出 1

query a 1
query a 4
query c 1
query cy 1
query cz 1
answer aaa aba czzzz cxyxy

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.