QOJ.ac

QOJ

実行時間制限: 3 s メモリ制限: 1024 MB 満点: 100

#3107. 调试

統計

你那高级的调试器在这种情况下帮不上忙。代码在调试版本和发布版本之间产生不同行为的情况有很多,当这种情况发生时,人们可能不得不求助于更原始的调试形式。

现在,你和你的 printf 只能靠自己去寻找导致发布版本崩溃的那一行代码了。不过你还算幸运:向程序中添加 printf 语句既不会影响 Bug(它仍然会在原来的代码行崩溃),也不会影响执行时间(至少不会有显著影响)。因此,即使是那种在每一行代码前都加上 printf 语句、运行程序直到崩溃并检查最后一行输出的朴素方法也是可行的。

然而,在代码中添加每一条 printf 语句都需要时间,而且程序可能有很多行。所以,一个更好的计划可能是在程序中间放置一条 printf 语句,让它运行,观察它是否在添加的语句之前崩溃,然后继续在代码的前半部分或后半部分进行搜索。

但话说回来,运行程序可能需要花费大量时间,因此最省时的策略可能介于两者之间。请编写一个程序,计算在选择最优策略放置 printf 语句的情况下,找到崩溃行所需的最坏情况时间(无论崩溃行在哪里)。

我们将在五小时后发布新版本,所以这个问题很紧急,需要尽快解决。

输入格式

输入包含一行三个整数: $n$ ($1 \le n \le 10^6$),代码行数; $r$ ($1 \le r \le 10^9$),编译并运行程序直到崩溃所需的时间; * $p$ ($1 \le p \le 10^9$),添加单行 printf 语句所需的时间。

你已经运行过一次程序,因此已经知道它确实会在某处崩溃。

输出格式

输出使用最优策略找到崩溃行所需的最坏情况时间。

样例

样例输入 1

1 100 20

样例输出 1

0

样例输入 2

10 10 1

样例输出 2

19

样例输入 3

16 1 10

样例输出 3

44

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.