Pagini recente » Cod sursa (job #109866) | Profil HakunaMatata | Cod sursa (job #1223741) | Cod sursa (job #1666396) | Cod sursa (job #3122352)
#include <fstream>
#include <algorithm>
#define nmax 50005
using namespace std;
ifstream in("orase.in");
ofstream out("orase.out");
struct turn
{
int distanta, inaltime;
};
bool cmp(turn a, turn b)
{
if( a.distanta == b.distanta)
return a.inaltime < b.inaltime;
return a.distanta<b.distanta;
}
long long max(long long a, long long b)
{
if(a >= b)
return a;
else
return b;
}
long long n, m, maxim, stanga;
turn v[nmax];
int main() {
in>>m>>n;
for(int i=1; i<=n; i++)
{
in >> v[i].distanta >> v[i].inaltime;
}
sort(v+1, v+n+1, cmp);
stanga = v[1].distanta;
maxim += v[1].distanta + v[1].inaltime;
for(int i=2; i<=n; i++)
{
maxim = max(maxim, stanga + v[i].inaltime + v[i].distanta- v[1].distanta );
stanga = max(stanga, v[i].inaltime + v[1].distanta- v[i].distanta);
}
out<<maxim;
return 0;
}