#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。