题目描述
三个农民每天清晨 5 点起床, 然后去牛棚给三头牛挤奶。
第一个农民在 300 秒 (从 5 点开始计时) 给他的牛挤奶, 一直到 1000 秒。 第二个农民在 700 秒开始, 在 1200 秒结束。 第三个农民在 1500 秒开始, 2100 秒结束。
期间最长的至少有一个农民在挤奶的连续时间为 900 秒 (从 300 秒到 1200 秒), 而最长的无人挤奶的连续时间(从挤奶开始一直到挤奶结束)为 300 秒 (从 1200 秒到 1500 秒)。
你的任务是编一个程序, 读入一个有n个农民挤n头牛的工作时间列表, 计算以下两点(均以秒为单位):
- 最长至少有一人在挤奶的时间段。
- 最长的无人挤奶的时间段。 (从有人挤奶开始算起)
输入格式
第一行一个正整数n,接下来 n 行, 每行两个非负整数 l,r 表示一个农民的开始时刻与结束时刻。
输出格式
一行, 两个整数, 即题目所要求的两个答案。
样例
输入数据#1
3
300 1000
700 1200
1500 2100
输出数据#1
900 300
数据范围
对于 100%的数据,1<=n<=5000, 0<=l<=r<=1e6。
AC代码:
#include <bits/stdc++.h> //万能头文件
using namespace std;
typedef long long ll;