3128 - 火星探索

题目描述

在未来的某一天,地球上的人类开始对火星进行探索,希望能够发现新的火星资源。

某日,地球上的航天技术最发达的 A,B,C 三国发现火星上有大规模的稀有资源,三个国家都想得到这批资源,于是三个国家一共派出了 N 支航天科考队前往火星。在火星他们统计发现,一共有 M 个独立的区域拥有稀有资源。

为了避免争端,最大限度地利用有限的时间来采集资源,大家达成了一个共同开采协议:

  1. 每支队伍每天最多只能开采其中一个区域的资源,如果某支队伍开始开采某个区域的资源,其他队伍不能在该区域开采。按当前的科技水平,如果某个队伍某天开始开采某区域的资源,该队伍当天一定能将资源开采完并使用航天飞机将资源运输回地球。

  2. 每天按照每支科考队的技术水平来确定选择区域的顺序,每天都是由技术水平最高的科考队先挑选开采区域。每支科考队都会选择眼前储量最丰富的区域

请编程计算出,最终这三个国家,每个国家一共会获得多少火星上的稀缺资源。

输入

第一行两个整数 M,NM 表示区域数量,N 表示科考队的数量。

接下来 N 行,每行两个整数,分别表示每支科考队的技术水平和所属国家。分别用数字 1,2,3 表示 A,B,C 三国。

接下来一行 M 个整数,表示每个区域的资源储量。

测试数据确保,所有科考队的技术水平互不相同

输出

输出三个整数,分别表示编号为 1,2,3 的国家最后获得火星资源的总量,数字之间用空格隔开。

样例

输入

5 3 
5 1
8 2
9 3
5 1 8 3 3

输出

3 6 11

输入

3 5 
3 1
1 2
11 3
14 3
15 3
6 7 8

输出

0 0 21

输入

15 5 
14 1
6 2
9 3
8 3
4 2
2 3 1 3 8 9 2 2 4 2 8 2 4 4 5

输出

15 17 27
说明

样例 1 解释

5 个区域,3 支科考队。

1 天,技术水平为 9 的科考队开采了存储量为 8 的区域;技术水平为 8 的科考队开采了存储量为 5 的区域;技术水平为 5 的科考队开采了了存储量为 3 的区域。

2 天,技术水平为 9 的科考队开采了存储量为 3 的区域;技术水平为 8 的科考队开采了存储量为 1 的区域;所有区域开采完毕。

编号为 1 的国家总开采量=3

编号为 2 的国家总开采量=5+1=6

编号为 3 的国家总总开采量=8+3=11

数据规模

对于 40\% 的数据,M≤100N≤100

对于 60\% 的数据,M≤1000N≤100

对于 100\% 的数据,3≤M≤1000003≤N≤4000,每支科考队的技术水平均在 [1,100000] 的范围内,每个区域的资源储量均在 [1,100000] 的范围内。

测试数据确保在 N 支科考中,三个国家的科考队都会出现。

标签
题目参数
时间限制 1 秒
内存限制 512 MB
提交次数 284
通过人数 127
金币数量 0 枚
难度 基础


上一题 下一题