Challenge FIND
unknown
c_cpp
4 years ago
1.0 kB
9
Indexable
#include <algorithm>
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("find.inp");
ofstream fout("find.out");
typedef struct
{
int x, y;
} range;
range a[100002];
bool compare(range a, range b)
{
return a.x < b.x;
}
vector<range> rangeList;
int main()
{
int n;
fin >> n;
for (int i = 0; i < n; i++)
{
fin >> a[i].x >> a[i].y;
}
sort(a, a + n, compare);
rangeList.push_back(a[0]);
for (int i = 1; i < n; i++)
{
int currentIndex = rangeList.size() - 1;
if (rangeList[currentIndex].y >= a[i].x)
{
rangeList[currentIndex].y = a[i].y;
}
else
{
rangeList.push_back(a[i]);
}
}
int result = 0;
for (int i = 0; i < rangeList.size(); i++)
{
result = max(result, rangeList[i].y - rangeList[i].x);
}
fout << result;
fin.close();
fout.close();
return 0;
}Editor is loading...