3858: 【CSP2022】卡牌游戏

内存限制:512 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:119 解决:12

题目描述

文件读写  card.in/out


X 为了展示自己高超的游戏技巧,在某一天兴致勃勃地找小 Y 玩起了一种卡牌游戏。每张卡牌有类型(攻击或防御)和力量值两个信息。

Y 有n张卡牌,小 X 有m张卡牌。已知小 X 的卡牌全是攻击型的。

游戏的每一轮都由小 X 进行操作,首先从自己手上选择一张没有使用过的卡牌 X。如果小 Y 手上没有卡牌,受到的伤害为 X 的力量值,否则小 X 要从小Y 的手上选择一张卡牌 Y。若 Y 是攻击型( X 的力量值不小于 Y 的力量值时才可选择),此轮结束后 Y 消失,小 Y 受到的伤害为 X 的力量值与 Y 的力量值的差;若 Y 是防御型( X 的力量值大于 Y 的力量值时才可选择),此轮结束 Y 消失,小 Y 不受到伤害。

X 可以随时结束自己的操作(卡牌不一定要用完)。希望聪明的你帮助他进行操作,使得小 Y 受到的总伤害最大。


输入

输入的第一行包含两个整数nm

接下来n行每行包含一个字符串和一个整数,分别表示小 Y 的一张卡牌的类型(“ATK”表示攻击型,“DEF”表示防御型)和力量值。

接下来m行每行包含一个整数,表示小 X 的一张卡牌的力量值。

输出

输出一行包含一个整数,表示小 Y 受到的最大总伤害。





【样例说明 1

第一轮,小 X 选择自己的第一张卡牌和小 Y 的第二张卡牌,小 Y 的第二张卡牌消失。 

第二轮,小 X 选择自己的第二张卡牌和小 Y 的第一张卡牌,小 Y 的第一张卡牌消失,同时受到500 点伤害。 

第三轮,小 X 选择自己的第三张卡牌,此时小 Y 手上已经没有卡牌,受到2500 点伤害。小 X 结束游戏,小 Y 共受到3000 点伤害。 

【样例说明 2

第一轮,小 X 选择自己的第三张卡牌和小 Y 的第一张卡牌,小 Y 的第一张卡牌消失,同时受到91点伤害。 

第二轮,小 X 选择自己的第四张卡牌和小 Y 的第二张卡牌,小 Y 的第二张卡牌消失,同时受到901点伤害。 

 X 结束游戏,小 Y 共受到992 点伤害。 

【数据规模和约定】

各规模均有一半数据满足小 Y 只有攻击型卡牌。对于30% 的数据,1 ≤ n,m≤ 6 。 

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

  

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

样例输入 复制

2 3
ATK 2000
DEF 1700
2500
2500
2500

样例输出 复制

3000

提示


来源/分类