#3851. 课程冲突(C++三级)

课程冲突(C++三级)

题目描述

小 A 修了 n 门课程, 第 i 门课程是从第 ai 天一直上到第 bi 天。

定义两门课程的冲突程度为: 有几天是这两门课程都要上的。

例如 a1=1,b1=3,a2=2,b2=4 时, 这两门课的冲突程度为 2。

现在你需要求的是这 n 门课中冲突程度最大的两门课的冲突程度。

输入

第一行一个正整数 n 表示课程数量。 接下来 n 行,每行两个正整数 ai,bi。 2 ≤ n≤ 1000, 1 ≤ ai ≤ bi ≤ 1000。

输出

输出一个整数表示最大的冲突程度

样例输入:

3 1 3 2 4 5 5

样例输出:

2

问题分析

对于例子所说的一门课天数的区间为[1, 3], 另一门课区间为[2, 4], 得出来的2是求解区间的并集, 即相交的区间, 如下图: image

那么我们可以得知对于区间[a1, b1]与区间[a2, b2], 有两种情况.

第一种情况是a1点落在区间[a2, b2]中, 如下: image

这时需要满足的条件为a2 <= a1 <= b2, 那么区间的差值(即冲突天数)计算方式为: b2 - a1 + 1

第二种情况是b1点落在区间[a2, b2]中, 如下: image

Limitation

1s, 1024KiB for each test case.