QOJ.ac

QOJ

実行時間制限: 1 s メモリ制限: 1024 MB 満点: 100 インタラクティブ

#14077. 马里奥还是路易吉

統計

Mario 和 Luigi 正在玩一个游戏,他们各自选择了一个不同的数字 $M$ 和 $L$($0 \le M, L < 2^{10^{18}}$)。为了对游戏结果进行谨慎的下注,你想知道谁的数字更大。Mario 和 Luigi 都已经将他们的秘密数字告诉了他们的好朋友 Toadette,Toadette 已经将这两个数字记为具有 $10^{18}$ 位的二进制数。因此,你决定向 Toadette 寻求帮助!

幸运的是,Toadette 愿意帮助你,并允许你向她提出以下两种类型之一的问题:

  1. 给出两个整数 $a$ 和 $b$,并问:“如果将 $M$ 和 $L$ 写成二进制,在闭区间 $[a, b]$ 内,$M$ 的二进制位是否与 $L$ 在该区间内的二进制位相同?”Toadette 会回答 “YES” 或 “NO”。
  2. 给出一个整数 $x$,并问:“$M$ 或 $L$ 的第 $x$ 位中哪一个更大?”Toadette 会回答 “MARIO”、“LUIGI” 或 “EQUAL”。

然而,Toadette 担心第一类问题会给你提供过多的信息,所以她决定让事情变得更有趣。每次你提出第一类问题时,她都会以 $\frac{1}{13}$ 的概率(独立且随机地)对你撒谎。你能通过最多提问 192 次来找出谁的数字更大吗?

交互格式

这是一个交互式问题。你将通过标准输入和输出与 Toadette 进行交互。你最多可以提问 192 次。

要提出问题,请向标准输出写入一行,格式为以下之一:

  • 1 a b($0 \le a \le b < 10^{18}$)– 如果将 $M$ 和 $L$ 写成二进制,$M$ 和 $L$ 在区间 $[a, b]$ 内的二进制位是否相同?Toadette 将回答 “YES” 或 “NO”。
  • 2 x($0 \le x < 10^{18}$)– 谁的数字的第 $x$ 位更大?Toadette 将根据谁的数字在该位置拥有更大的二进制位来回答 “MARIO” 或 “LUIGI”,如果该位置的二进制位相同则回答 “EQUAL”。

要猜测谁的数字更大,请向标准输出写入一行,格式如下:

  • ! S($S \in \{\text{MARIO}, \text{LUIGI}\}$)– 猜测 $S$ 的数字更大。

你只能进行一次猜测,并且你的程序在进行猜测后必须立即终止。请注意,猜测谁的数字更大不计入 192 次提问的限制。

说明:Toadette 将最低有效位(最右侧)视为索引为 0 的位,将最高有效位(最左侧)视为索引为 $10^{18} - 1$ 的位。例如,对于数字 356(二进制表示为 $0 \dots 0101100100$),区间 $[0, 3]$ 将对应最右侧的四位数字 $0100$。

在每次提问后,请确保输出一个换行符并刷新输出流。为此,请使用:

  • C 语言中的 fflush(stdout)
  • C++ 中的 cout.flush()
  • Java 中的 System.out.flush()
  • Python 中的 stdout.flush()

评测说明

提交的程序将在恰好 100 个测试点上进行评测。每个游戏中的数字 $M$ 和 $L$ 可能是也可能不是随机生成的,并且在不同的提交之间可能会有所不同。对于每个第一类问题,Toadette 决定是否撒谎是随机决定的,因此在不同的提交之间也会有所不同。

样例

输入样例 1

NO
MARIO

输出样例 1

1 0 4
2 3
! MARIO

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.