#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是求解区间的并集, 即相交的区间, 如下图:
那么我们可以得知对于区间[a1, b1]与区间[a2, b2], 有两种情况.
第一种情况是a1点落在区间[a2, b2]中, 如下:
这时需要满足的条件为a2 <= a1 <= b2, 那么区间的差值(即冲突天数)计算方式为: b2 - a1 + 1
第二种情况是b1点落在区间[a2, b2]中, 如下:
Limitation
1s, 1024KiB for each test case.