#4271. 区间并集(Union of Interval)

区间并集(Union of Interval)

题目描述

对于实数 LLRR,我们用[L,R)[L,R)表示大于等于 LL 且小于 RR 的实数集合。这样的集合被称为右半开区间。

给定 NN 个右半开区间 [Li,Ri)[L_i,R_i)。设 SS 为它们的并集。将 SS 表示为最少数量的右半开区间的并集。

输入格式

输入从标准输入中给出,格式如下:

NN

L1L_1 R1R_1

L2L_2 R2R_2

\vdots

LNL_N RNR_N

输出格式

kk 为表示 SS 所需的最少右半开区间数。按 XiX_i 升序输出这 kk 个右半开区间 [Xi,Yi)[X_i,Y_i),格式如下:

X1X_1 Y1Y_1

X2X_2 Y2Y_2

\vdots

XkX_k YkY_k

样例

3
10 20
20 30
40 50
10 30
40 50
3
10 40
30 60
20 50
10 60

样例解释

【样例1说明】
三个右半开区间 [10,20),[20,30),[40,50)[10,20),[20,30),[40,50) 的并集等于两个右半开区间 [10,30),[40,50)[10,30),[40,50) 的并集。

【样例2说明】
三个右半开区间 [10,40),[30,60),[20,50)[10,40),[30,60),[20,50) 的并集等于一个右半开区间 [10,60)[10,60) 的并集。

数据范围

  • 1N2×1051 \leq N \leq 2\times 10^5
  • 1Li<Ri2×1051 \leq L_i < R_i \leq 2\times 10^5
  • 输入中的所有值都是整数。

来源

  • AtCoder ABC256D