Pagini recente » Cod sursa (job #2520093) | Cod sursa (job #2522627) | Cod sursa (job #648264) | Cod sursa (job #2545668) | Cod sursa (job #1585907)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("orase.in");
ofstream out("orase.out");
const int dmax = 50000;
struct ELEMENT {int d, L;};
ELEMENT m[dmax + 1];
int Dist_max;
int M, N;
bool exc(ELEMENT e1, ELEMENT e2)
{
if(e1.d == e2.d) return e1.L < e2.L;
else
return e1.d < e2.d;
}
int main()
{
int i, j, dist;
in >> M >> N;
for(i = 1; i <= N; i++) in >> m[i].d >> m[i].L;
sort(m + 1, m + N + 1, exc);
j = 1;
int j_max = 1;
for(i = 1, j = 1; i <= N, j <= N; i++, j++)
{
dist = m[i].L + m[i].d + m[j_max].L - m[j_max].d;
if(m[j].L - m[j].d > m[j_max].L - m[j_max].d) j_max = j;
Dist_max = max(dist, Dist_max);
}
out << Dist_max;
return 0;
}