魔导师晨拥的英雄技能为初始造成 2 点伤害,如果恰好消灭某个随从,则伤害永久增加 1 点伤害。
卡牌“鲁莽的学徒”发动战吼效果可以向所有敌人(敌方随从和敌方英雄)都发射英雄技能,发射顺序为先从随从开始自左向右,最后敌方英雄。(逐个攻击)
假设现在你已经变为魔导师晨拥,现在敌方有 n 个随从,血量分别为 ai,计算发动 m 次“鲁莽的学徒”战吼效果对敌方英雄造成的伤害。
输入描述:
第一行给定两个正整数 (1≤n≤7,1≤m≤100) 表示敌方随从和“鲁莽的学徒”的战吼发动次数。
第二行给定 n 个正整数 (1≤ai≤100) 表示自左向右敌方随从的血量。
输出描述:
输出对敌方英雄造成的总伤害。示例1
输入
5 6 1 2 3 4 5输出
36说明
初始英雄技能伤害为 2,第一次战吼:先攻击血量为 1 的随从,由于不是恰好消灭,英雄技能伤害不增加,再攻击血量为 2 的随从,恰好消灭,英雄技能伤害增加到 3,再攻击血量为 3 的随从,恰好消灭,英雄技能伤害变为 4,以此类推,攻击完所有随从后的英雄技能伤害为 6,打一次敌方英雄造成 6 点伤害,之后的 5 次战吼由于随从全部死亡,所以直接攻击敌方英雄,都造成 6点伤害,故而对敌方英雄造成的总伤害为 6×6=36 (第一次战吼造成了 6 点伤害,随后 5 次都造成 6 点伤害)
#include <iostream> using namespace std; int main(){ int n,m,s[10],sh=2,ans=0; scanf("%d%d",&n,&m); for(int i=1;i<=n;i++){ scanf("%d",&s[i]); } for(int i=1;i<=m;i++){ for(int j=1;j<=n;j++){ if(sh-s[j]==0){ sh+=1; } s[j]=s[j]-sh; if(s[j]<=0){ s[j]=0; } } ans+=sh; } printf("%d",ans); return 0; }