Pagini recente » Cod sursa (job #21644) | Cod sursa (job #395789) | Cod sursa (job #2181728) | Cod sursa (job #1878176) | Cod sursa (job #264958)
Cod sursa(job #264958)
# include <stdio.h>
# include <math.h>
# define n 50001
long M,L[n],max,d,N,D[n],i,j;
void quick(int st, int dr)
{
long i=st,j=dr,aux,p=D[(st+dr)/2];
if (dr<=st) return;
while (i<=j){
while (D[i]<p) i++;
while (p<D[j]) j--;
if (i<=j) {
aux=D[i];D[i]=D[j];D[j]=aux;
aux=L[i];L[i]=L[j];L[j]=aux;
i++; j--;
}
}
if (st<j) quick(st,j);
if (i<dr) quick(i,dr);
}
int main(){
freopen("orase.in", "r", stdin);
freopen("orase.out", "w", stdout);
scanf("%ld %ld",&M,&N);
for (i=1;i<=N;++i)
scanf("%ld %ld",&D[i],&L[i]);
quick(1,N);
j=1; max=0;
for (i=2;i<=N;++i){
if (max<L[i]+L[j]+D[i]-D[j]) max=L[i]+L[j]+D[i]-D[j];
if (abs(L[i]-D[i])>abs(L[j]-D[j]))j=i;
}
printf("%ld",max);
return 0;
}