Pagini recente » Cod sursa (job #819767) | Cod sursa (job #1700677) | Cod sursa (job #2807394) | Cod sursa (job #702833) | Cod sursa (job #264965)
Cod sursa(job #264965)
# include <stdio.h>
# define n 50002
long M,L[n],N,D[n],j,i;
long long max;
void quick(long st, long 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=-1;
for (i=1;i<=N;++i){
if (max<L[i]+L[j]+D[i]-D[j]) max=L[i]+L[j]+D[i]-D[j];
if (L[i]-D[i]>L[j]-D[j])j=i;
}
printf("%lld",max);
return 0;
}