QOJ.ac

QOJ

Límite de tiempo: 1.0 s Límite de memoria: 512 MB Puntuación total: 100 Interactivo

#14544. 轮盘

Estadísticas

这是一个交互式问题。请确保在每次查询输出后使用流刷新操作,以免将部分输出留在缓冲区中。例如,在 C/C++ 中必须使用 fflush(stdout),在 Python 中使用 sys.stdout.flush()(不要忘记 import sys),在 Java 中使用 System.out.flush()

轮盘赌是一种博弈游戏。为了简化,我们假设其规则和步骤如下:

  • 整个博弈过程由许多轮组成。
  • 在每一轮中:

    • 你可以选择一个 $x$ 并支付 $x$ 元作为赌注。$x$ 可以是区间 $[1, 10^{700})$ 内的任意正整数。
    • 庄家将转动轮盘,轮盘只有两种结果,分别由黑色和白色两种颜色表示。
    • 如果结果对应白色,你将从庄家处获得 $2x$ 元,这意味着你在这一轮中净赚 $x$ 元。否则,庄家将吞掉你支付的 $x$ 元,这意味着你在这一轮中输掉 $x$ 元。
  • 每轮结束后,你可以选择继续博弈或直接停止。
  • 两种结果的概率是相等的。这意味着它们的概率都是 $0.5$。

现在,一个奸商设置了一个轮盘游戏并诱骗人们参与。为了骗取更多的钱,他可以设定轮盘结果的概率。更准确地说,他可以提前将你获胜的概率设置为 $p$($0 < p < 1$,相应地,你输掉的概率为 $1 - p$)并在游戏结束前一直保持该概率。

不幸的是,小 A 虽然足够富有,但没能承受住诱惑,因为赌博输掉了 $y$ 元。现在他请求聪明的 ACMer——你,来帮他赢回他的钱。你不想用自己的钱去赌博。因此,他会借给你 $10^{700}$ 元——一笔巨款,希望你参与那个游戏帮他赢回他的钱(这意味着,最初你拥有 $10^{700}$ 元,你需要在某个时刻拥有至少 $10^{700} + y$ 元,并且在任何时候你的资金都必须始终为正数)。你也不想浪费时间,所以你希望在不超过 $5000$ 轮内结束博弈。

输入格式

第一行包含三个整数:$y$($1 \le y \le 1145141919810$)、$q$($1 \le q \le 100$)和 $seed$($1 \le seed \le 10^{18}$),表示小 A 输掉了 $y$ 元,且奸商将你获胜的概率 $p$ 设置为 $\frac{q}{100}$,$seed$ 被交互器用于生成你的输赢序列。你的程序不需要对其做任何处理,只需读取它即可。

你的程序将接收 "0""1""2"(不带双引号)作为当前轮的结果,其中:

  • "0" 表示你在这一轮中输了;
  • "1" 表示你在这一轮中赢了,但仍未赢回足够的钱;
  • "2" 表示你在这一轮中赢了,并且已经赢回了足够的钱(在这种情况下,为了防止不必要的错误,请让你的程序立即终止以获得 "Accepted"。否则,我们无能为力,只能祝你好运)。

你的程序应该读取这些结果并做出相应的决策。

输出格式

若干行,每行的格式为 $x$(不带双引号,$x$ 是区间 $[1, 10^{700})$ 内的无前导零正整数),表示你继续游戏并支付 $x$ 元作为赌注。

交互

交互器将读取你的输出。然后它将使用 $seed$ 随机生成一个在 $[0, 1)$ 范围内的实数 $p'$,并将其与 $p$ 进行比较。如果 $p' < p$,它将发送 "0",否则它将发送 "1""2"(参见输入格式部分)。你可以认为你的输赢序列是唯一的,且由 $seed$ 决定。

在以下(包括但不限于)情况下,你可能会得到 "Wrong Answer"、"Time Limit Exceeded" 或其他错误结果。请在提交前仔细检查你的代码:

  • 输出格式错误。
  • 使用了超额的资金。
  • 未能在 $5000$ 轮内赢回足够的钱。

样例

输入样例 1

1145141 91 9810
1
0
2

输出样例 1

114514
1145141
11451419

输入样例 2

100 100 2333
2

输出样例 2

200

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.