#C2026XSR3H. 信号盲区(signal)

信号盲区(signal)

文件输入输出提示

本题采用文件输入输出。提交代码时,请在 main 函数开头加入文件重定向,并从 signal.in 读入、输出到 signal.out。

freopen("signal.in", "r", stdin);
freopen("signal.out", "w", stdout);

题目描述

苗苗负责在学校的一条走廊中布置信号器。走廊上有 MM 个位置,编号为 11 到 MM。

第 ii 个信号器可以覆盖编号从 lil_i 到 rir_i 的所有位置,包括 lil_i 和 rir_i。

请你统计:

  1. 有多少个位置没有被任何信号器覆盖;
  2. 有多少个位置恰好被一个信号器覆盖;
  3. 一个位置最多会被多少个信号器同时覆盖。

输入格式

从文件 signal.in 中读入数据。

第一行输入两个整数 M,NM,N,表示走廊长度和信号器数量。

接下来 NN 行,每行输入两个整数 li,ril_i,r_i,表示一个信号器的覆盖区间。

输出格式

输出到文件 signal.out 中。

输出一行三个整数,分别表示没有被覆盖的位置数量、恰好被一个信号器覆盖的位置数量、最大覆盖次数。

输入输出样例 #1

输入 #1

10 4
1 3
3 5
7 10
8 8

输出 #1

1 7 2

说明/提示

第 6 个位置没有被任何信号器覆盖。

位置 1,2,4,5,7,9,101,2,4,5,7,9,10 恰好被一个信号器覆盖,共 7 个。

位置 33 和 88 都被两个信号器覆盖,因此最大覆盖次数为 2。

输入输出样例 #2

输入 #2

6 0

输出 #2

6 0 0

第二个样例中,没有布置任何信号器,所以 6 个位置都没有被覆盖,最大覆盖次数为 0。

数据范围与子任务

对于所有数据,满足:

  • 1≤M≤1061\le M\le 10^6;
  • 0≤N≤2×1050\le N\le 2\times 10^5;
  • 1≤li≤ri≤M1\le l_i\le r_i\le M。
测试点编号 M≤M\le N≤N\le 特殊性质
1∼21\sim 2 10001000 无
3∼43\sim 4 10610^6 50005000 所有区间两两不相交
5∼75\sim 7 10510^5 无
8∼108\sim 10 10610^6 2×1052\times 10^5

signal_大样例.zip