Pagini recente » Cod sursa (job #2060359) | Cod sursa (job #2091120) | Cod sursa (job #703783) | Cod sursa (job #2560043) | Cod sursa (job #69736)
Cod sursa(job #69736)
#include <stdio.h>
#include <algorithm>
#define Nmax 50000
using namespace std;
int N,M,x[Nmax],i;
long long a[Nmax],d[Nmax],l[Nmax],maxim;
bool cmp(int a,int b)
{
return (d[x[a]]<d[x[b]]);
}
int main()
{
freopen("orase.in","r",stdin);
scanf("%d %d",&M,&N);
for (i=0;i<N;++i)
{
scanf("%lld %lld",&d[i],&l[i]);
x[i]=i;
}
fclose(stdin);
stable_sort(x,x+N,cmp);
a[0]=l[x[0]];
for (i=1;i<N-1;++i)
{
if (a[i-1]+d[x[i]]-d[x[i-1]]>l[x[i]]) a[i]=a[i-1]+d[x[i]]-d[x[i-1]];
else a[i]=l[x[i]];
}
maxim=l[x[N-1]]+a[N-2]+d[x[N-1]]-d[x[N-2]];
for (i=N-2;i>1;--i)
if (l[x[i]]+a[i-1]+d[x[i]]-d[x[i-1]]>maxim) maxim=l[x[i]]+a[i-1]+d[x[i]]-d[x[i-1]];
freopen("orase.out","w",stdout);
printf("%lld",maxim);
fclose(stdout);
return 0;
}