1917. 雇佣兵

时间限制 2000 ms   内存限制 256 MB

亡者之港有个雇佣兵基地,基地的领袖是米拉·汉,每天雇佣兵基地都会收到一些委托,米拉则需要选择是否接受这些委托,以及怎么指派手下的雇佣兵团去执行这些委托。

对于每份委托,米拉会根据难度将它们由高到低分为 $A,\ B,\ C,\ D$ 四个等级,每份委托都有对应的佣金。

米拉手下有一些雇佣兵团,雇佣兵团根据能力由高到低被分为 $A,\ B,\ C,\ D$ 四个等级,不同等级的兵团完成一份委托的时间分别是 $T_a,\ T_b,\ T_c,\ T_d$,每个等级的兵团除了可以执行对应等级的委托外,还能够执行比自己等级低的委托,但是用时并不会因此减少。

米拉每天都会收到很多份新的委托,在所有还未接受的委托中,她会优先处理佣金更多的委托,如果佣金相同,则会优先处理难度更低的,难度相同,则会优先处理收到委托时间更早的。

  1. 米拉在处理一份委托的时候,这份委托要是今天刚刚收到的,她会看是否有对应等级的兵团处于空闲状态,如果有的话,她会接下这份委托并直接指派一支对应等级的兵团执行。 若没有,她会请求雇主给她一天的时间再考虑一下是否接受,把这份委托留到第二天再处理。

  2. 如果这份委托是昨天收到的,即已经和雇主请求宽限的,米拉则会开放越级调度,即她会选择一个等级最低的,但是能够完成这份委托的空闲兵团来立即执行这份委托。 假如还是找不到这么一支空闲兵团的话,米拉只好告诉雇主,她拒绝这份委托。

现在你知道米拉手下的雇佣兵团,以及米拉收到的每一份委托的情况,请你求出最后米拉能够获得多少佣金。

初始时,所有雇佣兵团都是空闲的。

假如一个兵团从第 $x$ 天开始,花费 $T$ 天执行一个委托,那么第 $x+T$ 天即兵团返回当天,这个兵团认为是空闲的。

输入数据

第一行包括一个整数 $n\ (1\le n\le 10^5)$,表示委托的个数。

第二行包括四个整数 $a,\ b,\ c,\ d\ (0\le a,\ b,\ c,\ d\le 10^5)$,表示米拉手下等级分别为 $A,\ B,\ C,\ D$ 的兵团个数。

第三行包括四个整数 $T_a,\ T_b,\ T_c,\ T_d\ (1\le T_a,\ T_b,\ T_c,\ T_d\le 10^9)$,表示 $A,\ B,\ C,\ D$ 四个等级的兵团完成一份委托分别需要的时间。

接下来一共 $n$ 行,每行包括一个大写字母和两个整数 $t,\ r(1\le t,\ r\le 10^9)$ 来描述一份委托,大写字母表示委托的等级,$t$ 表示米拉接到委托的时间,$r$ 表示这份委托的佣金。

输出数据

一行包括一个整数,表示米拉收到的总佣金数额。

样例输入

复制
4
1 0 1 0
3 2 3 4
C 1 5
D 2 1
C 4 2
A 4 1 \n
 · · · \n
 · · · \n
 · · \n
 · · \n
 · · \n
 · · \n

样例输出

复制
8 \n

样例说明

第一份委托在第一天由一个C级兵团执行。

第二份委托在第二天收到后没有对应的兵团可用,在第三天越级调用了一个A级兵团执行。

第三份委托在第四天收到,此时执行第一份委托的兵团已经返回,再次接受这份委托。

第四份委托也在第四天收到,此时唯一的A级别兵团仍未返回,第五天A级军团依旧没有返回,该委托被拒绝。

前三份委托均被完成,总佣金为$5+1+2 = 8$。

提交

请先 登录

© 2024 FAQs Contact About