Pagini recente » Cod sursa (job #1092972) | Cod sursa (job #1722299) | Cod sursa (job #2226200) | Cod sursa (job #1325286) | Cod sursa (job #858780)
Cod sursa(job #858780)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in ("orase.in");
ofstream out ("orase.out");
struct Strada
{
int L, D;
} V[50010];
inline int abs (const int &A)
{
if (A < 0)
return -A;
return A;
}
inline int _max (const int &A, const int &B)
{
if (A > B)
return A;
return B;
}
inline bool comp (const Strada &A, const Strada &B)
{
return (A.D <= B.D);
}
int main()
{
int M, N, i, Ans = 0, BestL, BestD;
in >> M >> N;
for (i = 1; i <= N; i ++)
in >> V[i].D >> V[i].L;
sort (V + 1, V + N + 1, comp);
BestL = V[1].L;
BestD = V[1].D;
for (i = 2; i <= N; i ++){
Ans = _max (Ans, BestL + V[i].L - BestD + V[i].D);
if (V[i].L > BestL - BestD + V[i].D){
BestD = V[i].D;
BestL = V[i].L;
}
}
out << Ans;
return 0;
}