#U1718JB2. Lifeguards

Lifeguards

Farmer John 为他的奶牛开设了一个游泳池,认为这可以帮助他们放松并生产更多的牛奶。为了确保安全,他雇佣了 N 头奶牛作为救生员,每头奶牛都有一个班次,涵盖了白天的一些连续时间间隔。为简单起见,池每天从时间 t=0 到时间 t=1000 开放,因此每个班次可以用两个整数来描述,给出奶牛开始和结束班次的时间。例如,从时间 t=4 开始到时间 t=7 结束的救生员涵盖三个时间单位(请注意,端点是时间上的“点”)。

不幸的是,Farmer John 雇佣的救生员比他有足够的资金支持多出 1 名。鉴于他必须解雇一名救生员,剩下的救生员轮班最多还能覆盖多少时间?如果至少有一名救生员在场,则涵盖一段时间。

输入格式(文件 lifeguards.in):

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

输出格式(文件 lifeguards.out):

请写出一个数字,给出如果 Farmer John 解雇 1 名救生员,仍可以覆盖的最长时间。

样例输入:

3
5 9
1 4
3 7

样例输出:

7