#70. 区间覆盖一维

区间覆盖一维

题目背景

Y同学在管理学院的机房时,遇到了一个资源调度问题。有许多同学提交了服务器的使用申请,每个申请都对应一个时间段。Y同学希望计算出服务器在一天中总共被占用的有效时长,以便更好地进行资源规划和成本核算。

题目描述

给定 nn 个在数轴上的左闭右开区间 [li,ri)[l_i, r_i)。你的任务是计算这些区间的并集的总长度。

例如,对于区间 [3,7)[3, 7)[5,10)[5, 10),它们的并集是 [3,10)[3, 10),其总长度为 103=710 - 3 = 7

输入格式

第一行包含一个正整数 nn,表示区间的数量。

接下来 nn 行,每行包含两个整数 lil_irir_i,表示一个左闭右开区间 [li,ri)[l_i, r_i)

输出格式

输出一个整数,表示所有区间并集的总长度。

样例

样例输入 #1

3
1 5
2 4
6 8

样例输出 #1

6

提示

样例 1 解释

区间 [1,5)[1, 5)[2,4)[2, 4) 的并集是 [1,5)[1, 5)。 区间 [6,8)[6, 8) 与前两个区间不相交。 因此,总的并集为 [1,5)[6,8)[1, 5) \cup [6, 8)。 总长度为 (51)+(86)=4+2=6(5 - 1) + (8 - 6) = 4 + 2 = 6

数据范围与约定

对于 100%100\% 的数据,满足:

  • 1n2×1051 \le n \le 2 \times 10^5
  • 109li,ri109-10^9 \le l_i, r_i \le 10^9

说明

  • 对于输入的区间 [li,ri)[l_i, r_i),可能存在 liril_i \ge r_i 的情况,此时该区间视为空区间,其长度为 00