站外题求助
  • 板块灌水区
  • 楼主RuanHaoJun
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/11/26 13:08
  • 上次更新2023/11/26 15:25:10
查看原帖
站外题求助
710840
RuanHaoJun楼主2023/11/26 13:08

【问题描述】

李华和韩梅梅是邻居,两人都是计算机高手。他俩一直都想知道,两人到底谁的技术更高。今天,两人通过网络攻防战来一决高下。

韩梅梅写了n段代码,包含攻击代码和防御代码。李华写了m段代码,全部是攻击代码。每一段攻击代码有一个攻击力,每一段防御代码有一个防御力。每一段代码使用过一次后,就会消失。

每一轮,李华会选一段自己的代码(假设攻击力是x),去攻击韩梅梅,会出现以下四种情况:

1、韩梅梅没有代码了,则韩梅梅会受到x点伤害。

2、韩梅梅还有攻击力不大于x的攻击代码,李华从中选一段(假设攻击力是y)来对攻,韩梅梅受到x-y点伤害。

3、韩梅梅还有防御力小于x的防御代码,李华从中选一段来攻击,韩梅梅不受伤害。

4、李华可以随时结束战斗(两人的代码都不一定用完)。

现在李华想要知道,他最多能给韩梅梅制造多少点伤害。

【输入格式】

第一行包含两个整数n和m。

接下来n行,每行包含一个字符和一个整数,空格隔开,表示韩梅梅的n段代码的情况。字符可以是A或D,如果字符是A,表示这是韩梅梅的攻击代码,整数表示攻击力;如果字符是D,表示这是韩梅梅的防御代码,整数表示防御力。

接下来m行,每行包含一个整数,表示李华m段攻击代码的攻击力。

【输出格式】

一个整数,表示李华能给韩梅梅制造的最大伤害值。 

【样例输入1】

2 3

A 2000

D 1700

2500

2500

2500

【样例输出1】

3000 

【样例解释1】

第一轮,李华选择自己第1段代码,攻击韩梅梅的第2段代码,韩梅梅不受伤害。

第二轮,李华选择自己第2段代码,攻击韩梅梅第1段代码,韩梅梅受到500点伤害。

第三轮,李华剩下第3段代码,韩梅梅没有代码了,韩梅梅受到2500点伤害。

【样例输入2】

3 4

A 10

A 100

A 1000

1

11

101

1001

【样例输出2】

992 

【样例解释2】

第一轮,李华选择自己第3段代码,攻击韩梅梅的第1段代码,韩梅梅受到91点伤害。

第二轮,李华选择自己第4段代码,攻击韩梅梅第2段代码,韩梅梅受到901点伤害。

此时,李华选择结束游戏,韩梅梅共受到992点伤害。

(李华也可以1001对10,101对100,也是991+1=992点伤害)。

【数据范围】

对于30%的数据,1≤n,m≤6。

对于60%的数据,1≤n,m≤10^3。

对于100%的数据,1≤n,m≤10^5,力量值均为不超过10^6的非负整数。

各规模均有一半数据满足韩梅梅只有攻击代码。

2023/11/26 13:08
加载中...