#P1287. 奶牛救生员.3

奶牛救生员.3

题目描述

Farmer John 为他的奶牛们建造了一个游泳池,John 认为这将有助于他们放松身心以及生产更多牛奶。

为了确保奶牛们的安全, John 雇佣了 NN 头牛,作为泳池的救生员,每一个救生员在一天内都会有一定的事情,并且这些事情都会覆盖一天内的一段时间。为了简单起见,泳池从时间 t=0t=0 时开门,直到时间 t=1000000t=1000000 关门( 换言之, 09999990 \sim 999999 是游泳池营业时间),所以每个事情都可以用两个整数来描述,给出奶牛救生员开始以及结束事情的时间。

例如,一个救生员在时间 t=4t=4 时开始事情并且在时间 t=7t=7 时结束事情,那么这件事情就覆盖了 33 个单位时间( 4,5,64,5,6 ,注意:结束时间是“点”的时间, 77 已经不是这个救生员的值班时间了)。

不幸的是, John 多雇佣了一名的救生员,但他没有足够的资金来雇佣这些救生员。因此他必须解雇一名救生员,求可以覆盖剩余救生员的轮班时间的最大总量是多少?如果当时至少有一名救生员的事情已经开始,则这个时段被覆盖。

输入格式

输入的第一行包括一个整数 NN

接下来 NN 行中,每行有两个整数 SiS_iTiT_i,告诉了我们一个救生员在 010000000 \sim 1000000 范围内的开始以及结束时间。不同的救生员的事情覆盖的时间可能会重叠。

数据范围

1N1000001 \le N \le 100000

0SiTi10000000 \le S_i \le T_i \le 1000000

输出格式

如果 John 解雇一名救生员之后仍能覆盖的最大时间。

样例

3
5 9
1 4
3 7
7