题目描述
【题目描述】
农民约翰为他的奶牛开了一个游泳池,认为这样可以帮助它们放松,产更多的牛奶。
为了确保安全,他雇佣了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