Pagini recente » Cod sursa (job #2071957) | Cod sursa (job #1511510) | Cod sursa (job #2061947) | Cod sursa (job #3181829) | Cod sursa (job #83335)
Cod sursa(job #83335)
#include <stdio.h>
#include <stdlib.h>
#define inf 1000000000
long m,n,i,d[50001],l[50001],ind[50001];
int comp(const void* a,const void* b){
return d[(*(long*)a)]-d[(*(long*)b)];
}
int main(){
freopen ("orase.in","r",stdin);
freopen ("orase.out","w",stdout);
long a,b,maxi,maxj;
scanf ("%ld %ld",&m,&n);
for (i=1;i<=n;i++){
scanf ("%ld %ld",&d[i],&l[i]);
ind[i]=i;
}
qsort(ind,n+1,sizeof(long),comp);
maxj=-inf;
maxi=-inf;
for (i=2;i<=n;i++){
if (maxj<l[ind[i-1]]-d[ind[i-1]]){
maxj=l[ind[i-1]]-d[ind[i-1]];
a=ind[i-1];
}
if (d[ind[i]]+l[ind[i]]+maxj>maxi){
maxi=d[ind[i]]+l[ind[i]]+maxj;
b=ind[i];
}
}
printf("%ld\n",l[a]+l[b]+d[b]-d[a]);
return 0;
}