#P16665. [CSPro 25] 通信系统管理
[CSPro 25] 通信系统管理
背景
洛谷的测试数据仅供民间交流使用,非官方测试数据。官方评测链接:https://www.cspro.org/。
题目描述
你负责管理一个计算机通信系统。
有 台计算机接入了该系统,编号为 ,它们之间可以互相发送数据。
由于设备条件限制,机器之间不能任意多地发送数据。每两台机器之间均有一个“每日可用额度”的限制,单位为 MB/day,表示这两台机器每日可以互相发送的数据量(双方各自向对方发送的数据量之和)的最大值。
最初,任意两台机器的每日可用额度均为 。为了能发送数据,机器管理者需要向你申请额度。每个申请形如 的格式,表示机器 和 的每日可用额度增大 MB/day,持续 天(即从申请当天开始至申请后第 天内有效,从第 天开始失效)。不同申请的效果是可以叠加的。
定义每台机器的“通信主要对象”为当前时刻与该机器的每日可用额度最大的机器(如果有并列,则取其中编号最小的机器);如果一台机器与任何机器的每日可用额度均为 ,则称其为“通信孤岛”,并认为其没有“通信主要对象”;如果两台机器 和 互为“通信主要对象”,则称它们是一个“通信对”。
每天开始时,你都会先接受若干个额度申请,你需要依次处理这些申请;而后,你将接收到若干个查询某台机器的“通信主要对象”的请求;最后,你可能还希望求出此时的“通信孤岛”和“通信对”各有多少。
请你编写一段程序来实现上述任务。
输入格式
从标准输入读入数据。
第一行:2 个正整数 ,表示机器数和天数。
接下来 行,每两行描述一天中的事件,格式如下:
- 第 1 行:首先是一个非负整数 ,表示当天额度申请的数量。接下来有 个非负整数,依次描述每一个额度申请,格式如题面中所述。
- 第 2 行:首先是一个非负整数 ,表示当天查询“通信主要对象”的数量。接下来有 个正整数,依次表示查询的机器编号,保证编号在 范围内。
- 第 3 行:2 个整数 ,取值均为 或 ,分别表示当天是否要查询“通信孤岛”和“通信对”的数量。其中 表示需要查询“通信孤岛”的数量, 表示不需要查询; 的含义同理。
输出格式
输出到标准输出。
对于每个查询分别输出一行,一个非负整数表示该查询的答案。
查询按照天数顺序输出,对于同一天内的查询,先按照输入顺序输出所有查询“通信主要对象”的答案,再依次输出查询“通信孤岛”和“通信对”的答案(如果当天需要查询的话)。
如果某台被查询“通信主要对象”的机器是“通信孤岛”,认为查询结果为 。
3 3
2 1 2 2 3 1 3 3 2
1 1
0 0
1 2 3 3 1
2 1 2
0 1
0
2 1 3
1 1
3
3
3
1
2
0
1
1
提示
子任务
设 ,。
- 子任务 1(20 分):满足 ,;
- 子任务 2(10 分):满足 ;
- 子任务 3(10 分):满足 ;
- 子任务 4(15 分):满足 ;
- 子任务 5(10 分):满足 ,对于所有额度申请均满足 ;
- 子任务 6(15 分):满足 对于所有额度申请均满足 ;
- 子任务 7(20 分):无特殊性质。
对于 100% 的数据,,,,,。
所有额度申请均满足 。