QOJ.ac

QOJ

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

#7703. 基数高低游戏

Statistics

在本题中,你需要编写一个程序来玩一个猜数字游戏,目标是猜出一个在指定进制(2–62)下最多 64 位的数字。数字的表示顺序为:0-9,A-Z,a-z。

这是一个交互式问题。你的程序发送的所有行都必须以换行符结尾并刷新缓冲区(你可能需要禁用缓冲)。你的程序接收到的所有响应也都是以换行符结尾的行。

你的程序将对该数字进行猜测,评测系统将返回一个字符串,提供关于你猜测中每一位数字的信息。

对于每个测试用例,你被允许的猜测次数有限制,如果超过该次数仍未猜出数字,你的程序将被终止并获得 WA(Wrong Answer)判决。允许的猜测次数为 $floor(log_2(base)) + 2$。为了增加趣味性,评测系统可能会尝试欺骗你,返回错误的信息。如果评测系统决定欺骗,它只会欺骗一次,且仅针对某一位数字。

如果你猜出的数字是正确的,评测系统将始终返回字符串 “correct”(不含引号)。

交互说明

当你的程序启动时,它应该读取两个以空格分隔的十进制整数:所有测试用例的进制 $B$ ($2 \le B \le 62$),以及测试用例的数量 $N$ ($1 \le N \le 100$)。

接着,你的程序将读取一个十进制值,即第一个测试用例的数字位数 $D$ ($1 \le D \le 64$)。然后,你的程序将输出一行,包含一个 $D$ 位、进制为 $B$ 的数值,作为你的第一次猜测。随后,你将从评测系统读取一行字符串。你的程序接下来的操作取决于从评测系统读取到的字符串。

  • 情况 1:如果字符串的值为 “correct”,说明你已成功猜出数字。如果还有更多的测试用例,你的程序应返回并等待下一个测试用例的长度 $D$。如果没有更多的测试用例,你的程序应退出。
  • 情况 2:字符串是一个长度为 $D$ 的字符串,由集合 $[+, -, =]$ 中的字符组成。每个字符表示你猜测中对应位置数字的准确性。$+$ 表示该位置的数字太小了。$-$ 表示该位置的数字太大了。$=$ 表示该位置的数字是正确的。然后,你将根据返回的信息进行下一次猜测。你的程序将重复此过程,直到收到 “correct” 响应,或者评测系统因猜测次数过多而终止你的程序。

如果在猜测对话过程中的任何时候,你检测到评测系统在作弊,你应该发送一行包含单词 “cheater” 的内容(不含引号)。如果评测系统确实在作弊,你将收到 “correct”(不含引号)的响应。如果评测系统没有作弊,你的程序将被终止并收到 WA 判决。作弊的一个例子是评测系统对同一个猜测做出不同的响应。另一个例子是信息自相矛盾:评测系统对较早猜测的响应与对较晚猜测的响应冲突。评测系统每个测试用例最多只能作弊一次。

样例

对于样例交互 1,正确值为 GNY23。对于样例交互 2,正确值为 555 和 9。

样例 1

36 1
5
00000
+++++
55555
+++--
AAA33
+++-=
GGG13
=+++=
GNN23
==+==
GNT23
(no response - too many guesses - WA)

样例 2

10 2
3
543
=++
554
==+
555
correct
1
2
+
5
+
7
+
8
(no response - too many guesses - WA)

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.