Pagini recente » Cod sursa (job #1861685) | Monitorul de evaluare | Cod sursa (job #19839) | Profil MihaelaCismaru | Cod sursa (job #208302)
Cod sursa(job #208302)
#include <stdio.h>
FILE *fin,*fout;
long d[50010],l[50010];
long i,j,n,m,max,rez;
void sort(long ll,long rr){
long i,j,x,y;
i=ll; j=rr; x=d[(i+j)/2];
do{
while(d[i]<x) i++;
while(x<d[j]) j--;
if(i<=j){
y=d[i];d[i]=d[j];d[j]=y;
y=l[i];l[i]=l[j];l[j]=y;
i++; j--;
}
}while(i<=j);
if(ll<j) sort(ll,j);
if(i<rr) sort(i,rr);
}
int main(){
fin=fopen("orase.in","r");
fout=fopen("orase.out","w");
fscanf(fin,"%ld%ld",&m,&n);
for(i=1;i<=n;i++) fscanf(fin,"%ld%ld",&d[i],&l[i]);
sort(1,n);
max=l[1]-d[1];
rez=0;
for(i=2;i<=n;i++){
if(l[i]+d[i]+max>rez) rez=d[i]+l[i]+max;
if(l[i]-d[i]>max) max=l[i]-d[i];
}
fprintf(fout,"%ld\n",rez);
fclose(fin); fclose(fout);
return 0;
}