问题6937--救生员

6937: 救生员

[命题人 : ]
时间限制 : 1.000 sec  内存限制 : 256 MiB

题目描述

【题目描述】

农民约翰为他的奶牛开了一个游泳池,认为这样可以帮助它们放松,产更多的牛奶。

为了确保安全,他雇佣了N头奶牛作为救生员,每头奶牛都有一个班次,覆盖一天中连续的一段时间。为了简单起见,每天从时间t=0到时间t=1,000,000,000是开放的,因此每个轮班可以用两个整数来描述,给出奶牛开始和结束轮班的时间。例如,从时间t=4开始到时间t=7结束的救生员涵盖三个时间单位(注意,端点是时间上的”)

不幸的是,农夫约翰雇了太多的救生员,他的钱不够用。假设他必须解雇一名救生员,那么剩下的救生员轮班最多能覆盖多少时间?如果至少有一名救生员在场,则会有一段时间。

输入格式】(lifeguards.in):

第一行输入包含N(1≤N≤100,000)。接下来的N行中,每一行都用0…1,000,000,000范围内的两个整数来描述救生员,给出救生员轮班的开始点和结束点。所有这些端点都是不同的。不同救生员的轮班可能会重叠。

输出格式】(lifeguards.out):

输出一个数字,给出如果农民约翰解雇了一名救生员,仍能涵盖的最长时间。

样例输入】:

3

5 9

1 4

3 7

样例输出】:

7

来源/分类