Pagini recente » Cod sursa (job #3147365) | Cod sursa (job #21330) | Cod sursa (job #884613) | Cod sursa (job #2302597) | Cod sursa (job #1774234)
#include <stdio.h>
#define maxim(a,b) a>b? a:b
struct strada
{
int l,d;
}v[50000];
inline void interschimb(int *a,int *b)
{
int aux=*a;
*a=*b;*b=aux;
}
void myqsort(int start,int stop)
{
int i,j,pivot;
i=start;j=stop;
pivot=v[(i+j)/2].l;
while(i<=j)
{
while(v[i].l<pivot)
i++;
while(v[j].l>pivot)
j--;
if(i<=j)
{
interschimb(&v[i].l,&v[j].l);
interschimb(&v[i].d,&v[j].d);
i++;j--;
}
}
if(j>start)
myqsort(start,j);
if(i<stop)
myqsort(i,stop);
}
int main()
{
FILE *fin,*fout;
fin=fopen("orase.in","r");
fout=fopen("orase.out","w");
int n,m,i,max,s;
fscanf(fin,"%d%d",&m,&n);
for(i=0;i<n;i++)
fscanf(fin,"%d%d",&v[i].l,&v[i].d);
myqsort(0,n-1);
max=v[0].d-v[0].l;s=0;
for(i=1;i<n;i++)
{
s=maxim(s,v[i].l+v[i].d+max);
max=maxim(max,v[i].d-v[i].l);
}
fprintf(fout,"%d",s);
fclose(fin);
fclose(fout);
return 0;
}