milk2.cpp
/*
ID: america6
PROG: milk2
LANG: C++11
*/
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
typedef pair<int, int> pii;
std::vector<pii> tl;
bool cmp(const pii& a, const pii& b) {
return a.first < b.first;
}
int main() {
ofstream fout ("milk2.out");
ifstream fin ("milk2.in");
int n;
fin >> n;
while (n--) {
int mi, ma;
fin >> mi >> ma;
tl.push_back(make_pair(mi, ma));
}
sort(tl.begin(), tl.end(), cmp);
for (int i = 1; i < tl.size(); ) {
pii& item = tl[i];
pii& past = tl[i-1];
if (item.first <= past.second) {
if (item.second <= past.second) {
tl.erase(tl.begin()+i);
} else {
past.second = item.second;
tl.erase(tl.begin()+i);
}
} else {
i++;
}
}
int cm = tl[0].second-tl[0].first, im = 0;
for (int i = 1; i < tl.size(); ++i) {
pii item = tl[i], past = tl[i-1];
if (cm < item.second-item.first) {
cm = item.second-item.first;
}
if (im < item.first-past.second) {
im = item.first-past.second;
}
}
fout << cm << " " << im << endl;
return 0;
}