P r o b l e m \mathrm{Problem} Problem
有一个英雄,初始生命值是 h p hp hp(生命值无上限),在接下来的 n n n秒内,每秒会受到一次伤害,第i秒受到的伤害值为 a [ i ] a[i] a[i]。这个英雄有一个道具“魔杖”,魔杖的初始能量为 0 0 0,每受到一次伤害,积攒一点能量。在英雄受到伤害后,可以立即释放魔棒中的能量,恢复 15 × 15× 15×[能量点数]的生命值,且魔棒的点数清零。释放能量有施法间隔 c d cd cd( c d cd cd是正整数),即相邻的两次释放的时间间隔至少有 c d cd cd秒。任何时刻当 h p ≤ 0 hp≤0 hp≤0时视为死亡,问这个英雄存活下来的前提下, c d cd cd的值最大可以是多少?
注意,若 a [ i ] a[i] a[i]为负,受到“伤害”后实际上生命值是增加的,魔棒仍然积攒能量。
S o l u t i o n \mathrm{Solution} Solution
显然我们可以想到二分 c d cd cd,关键是我们如何判断二分值 x x x的合法性。
我们如果要用差分约束来的不等式来限制的话,我们设 d i d_i di表示前i次的恢复次数。
- 显然 d i − d i − 1 ≥ 0 d_i-d_{i-1} \ge 0 di−di−1≥0。
- 对于我们二分的数值 x x x有: