#DR3. 村庄保卫战
村庄保卫战
村庄保卫战
玩家 xxj 在村庄中经营农场和商铺,日子平静而安宁。
某一天,他在探险中发现了一瓶神秘的不祥药水。出于好奇,他喝下了它,却没想到药水的力量悄然改变了周围的世界。
不久,村庄周围出现了一群灾厄村民,它们疯狂地袭击村庄,企图掠夺资源并摧毁一切。xxj 必须依靠自身力量和全套附魔合金盔甲来保护村庄的安全,如果他成功抵御所有灾厄村民,就能保卫村庄,成为村民心中的英雄。
战斗规则
每个灾厄村民都有一个综合强度值,xxj 的盔甲耐久值初始为m,力量值初始也为m,整个战斗全过程力量值不变,但是每一次战斗都会对盔甲耐久值产生影响。
- 战斗顺序:灾厄村民按出现顺序依次袭击。
- 力量与盔甲耐久:
- 若 xxj 的力量值 ≥ 当前灾厄村民的综合强度值:
- xxj 战胜村民;
- 被击败的灾厄村民会掉落等于他自身综合强度值的经验;
- xxj 的盔甲耐久值增加,增加值等于当前灾厄村民的综合强度值。
- 若 xxj 的力量值 < 当前灾厄村民的综合强度值:
- xxj 无法战胜当前灾厄村民;
- xxj 的盔甲耐久损失,损失值等于当前灾厄村民综合强度值的一半(向下取整);
- xxj 逃跑到下一个灾厄村民继续抵抗,将这个棘手的灾厄村民交给铁傀儡去对付。
- 若 xxj 的力量值 ≥ 当前灾厄村民的综合强度值:
- 挑战失败条件:
- 若盔甲耐久降为0或以下,xxj 无法继续防守,村庄被攻破,战斗结束。
- 挑战成功条件:
- 当所有灾厄村民都被处理完且盔甲耐久度仍然大于0,村庄幸存,战斗胜利。
输入格式
- 第一行:两个整数 n m
- n(1 ≤ n ≤ 10^5):灾厄村民数量
- m(1 ≤ m ≤ 10^4):xxj 的初始力量值和初始盔甲耐久度
- 第二行:n 个整数 a1 a2 … an(1 ≤ ai ≤ 10^4):按出现顺序的每个灾厄村民的综合强度值
输出格式
- 若挑战失败,输出两行:
-1
k
其中 k 表示第几个村民导致盔甲耐久降为0或以下(从1开始)。
- 若挑战成功,输出一行:
d
其中 d 表示最终盔甲耐久值。
样例 1
输入:
3 50
40 60 30
输出:
90
样例说明:
初始力量值和初始耐久值为m=50
第一次战斗50>40,战胜该灾厄村民,盔甲耐久值变为50+40=90
第二次战斗50<60,没有战胜该灾厄村民,盔甲耐久值变为90-60/2=60
第三次战斗50>30,战胜该灾厄村民,盔甲耐久值变为60+30=90
战胜所有灾厄村民,战斗结束,输出最终盔甲耐久度90
样例 2
输入:
3 10
5 30 20
输出:
-1
2
样例说明:
初始力量值和初始耐久值为m=10
第一次战斗:10≥5,战胜该灾厄村民,盔甲耐久值变为10+5=15
第二次战斗:10<30,无法战胜,盔甲耐久值变为15-(30/2)=15-15=0
此时盔甲耐久值降为0,触发失败条件,战斗立即结束。
因此,第2个灾厄村民导致失败,输出-1和2。