#1364. 三国争霸

三国争霸

【问题描述】

话说曹操、孙权、刘备三分天下,各不相让,争抢九州大地上各种珍稀的资源,以图强大自己的国家。某日,三国同时得知蛮荒某地突然发现了一个大规模的金矿群。三国都想得到这批黄金,于是都派出多股军队前往。在目的地他们发现,这个金矿群由很多个储量不同的小矿组成,每支队伍每天只能开采一个小矿。为了避免争端,最大限度地利用有限的时间来开采矿藏,他们达成了一个协议:按照每支军队的武力值来确定顺序,每一天都是由武力值最高的军队先挑选小矿。每支军队的长官都是聪明的,会选择眼前储量最丰富的小矿。

现在问题来了,三国都想提前知道他们最后会得到多少矿藏,你能编写程序解决这个问题吗?

【输入格式】

第一行两个数m、n;n表示共有n支军队,m表示共有m个小矿。n,m<=100000。

接下来n行,每行两个数,分别表示每支军队的武力值(小于100000)和所属阵营(1是魏,2是吴,3是蜀)

接下来一行m个数,表示每个小矿的储量(小于100000)。

【输出格式 】

一行三个数,分别表示曹魏,东吴,蜀汉最后得到的矿藏数。

【样例输入】

5 3

1 1

2 2

3 3

1 2 3 4 5

【样例输出】

3 5 7

【数据规模】

对于40%的数据,m≤100,n<=100;

对于60%的数据,m≤1000,n<=100;

对于100%的数据,m≤100000,n<=4000。