2138: 黑客马拉松

内存限制:256 MB 时间限制:1 S 标准输入输出
题目类型:传统 评测方式:Special Judge 上传者:
提交:11 通过:9

题目描述

你正在为一场黑客马拉松编写代码你已经想出了最优解,只需要将其打出来。
解码方案包含 c 个字符,你的打字速度是每个时间单位 1 个字符。
然而,你的计算机容易突然崩溃:在你打出每个字符后,有概率 p 会导致计算机崩溃,你需要重新开始。
在崩溃后恢复所需的时间为 r 个时间单位,然后你可以从你保存代码的最后一个点继续打字。
你可以随时点击“保存”(需要 t 个时间单位),以保存你的代码并在崩溃后从此点重新开始。
点击“保存”不会导致计算机崩溃。
请确定你需要花费的期望时间最小是多少。
请注意,在打完最后一个字符后,代码应该被保存。

输入格式

第一行包含三个整数 c、t、r(1≤c≤2000,0≤t,r≤109),表示字符数、单击“保存”的时间成本和崩溃后恢复的时间成本。
第二行包含一个浮点数p(0.001≤p≤0.999,小数点后最多10位),表示每次按下字符后计算机崩溃的概率。

输出格式

输出一个数字表示答案,输出结果与标准答案绝对误差或者相对误差不超过 10-6 被视为正确。

输入样例 复制

样例1:
2 1 5
0.25

样例2:
3 5 2
0.5

样例3:
10 4 5
0.327

输出样例 复制

样例1:
8.0

样例2:
26.0

样例3:
68.664967357

数据范围与提示

来源:2022.BAPC