#DR3. 村庄保卫战

村庄保卫战

村庄保卫战

玩家 xxj 在村庄中经营农场和商铺,日子平静而安宁。

某一天,他在探险中发现了一瓶神秘的不祥药水。出于好奇,他喝下了它,却没想到药水的力量悄然改变了周围的世界。

不久,村庄周围出现了一群灾厄村民,它们疯狂地袭击村庄,企图掠夺资源并摧毁一切。xxj 必须依靠自身力量和全套附魔合金盔甲来保护村庄的安全,如果他成功抵御所有灾厄村民,就能保卫村庄,成为村民心中的英雄。


战斗规则

每个灾厄村民都有一个综合强度值,xxj 的盔甲耐久值初始为m,力量值初始也为m,整个战斗全过程力量值不变,但是每一次战斗都会对盔甲耐久值产生影响。

  1. 战斗顺序:灾厄村民按出现顺序依次袭击。
  2. 力量与盔甲耐久
    • xxj 的力量值 ≥ 当前灾厄村民的综合强度值
      • xxj 战胜村民;
      • 被击败的灾厄村民会掉落等于他自身综合强度值的经验;
      • xxj 的盔甲耐久值增加,增加值等于当前灾厄村民的综合强度值。
    • xxj 的力量值 < 当前灾厄村民的综合强度值
      • xxj 无法战胜当前灾厄村民;
      • xxj 的盔甲耐久损失,损失值等于当前灾厄村民综合强度值的一半(向下取整);
      • xxj 逃跑到下一个灾厄村民继续抵抗,将这个棘手的灾厄村民交给铁傀儡去对付。
  3. 挑战失败条件
    • 若盔甲耐久降为0或以下,xxj 无法继续防守,村庄被攻破,战斗结束。
  4. 挑战成功条件
    • 当所有灾厄村民都被处理完且盔甲耐久度仍然大于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。