最新消息:380元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

信息学奥赛题库- 魔棒

C++ 少儿编程 1163浏览 0评论

友情提示:380元/半年,儿童学编程,就上码丁实验室

【题目描述】

有一个英雄,初始生命值是$hp$(生命值无上限),在接下来的$n$秒内,每秒会受到一次伤害,第i秒受到的伤害值为$a[i]$。这个英雄有一个道具“魔杖”,魔杖的初始能量为$0$,每受到一次伤害,积攒一点能量。在英雄受到伤害后,可以立即释放魔棒中的能量,恢复$15×$[能量点数]的生命值,且魔棒的点数清零。释放能量有施法间隔$cd$($cd$是正整数),即相邻的两次释放的时间间隔至少有$cd$秒。任何时刻当$hp≤0$时视为死亡,问这个英雄存活下来的前提下,$cd$的值最大可以是多少?

注意,若$a[i]$为负,受到“伤害”后实际上生命值是增加的,魔棒仍然积攒能量。

【输入】

第一行两个正整数$n,hp$,含义如题目所述。

第二行$n$个整数,分别是$a[1]..a[n]$。

【输出】

一个数,最大的$cd$,$cd$是一个正整数。

如果$cd$没有上限,输出“No upper bound.”;如果无论如何都不能存活,输出$-1$。

【输入样例】

7 30
20 5 30 4 10 5 20

【输出样例】

2

【提示】

【数据规模】

对于30%的数据,$n≤12$;

对于100%的数据,$n≤500,|a[i]|≤1000$。

您必须 登录 才能发表评论!