Pagini recente » Borderou de evaluare (job #3219449) | Cod sursa (job #2257511) | Rezultatele filtrării | Rezultatele filtrării | Cod sursa (job #206125)
Cod sursa(job #206125)
#include <stdio.h>
long int n,m;
long int D[50000],L[50000];
void quicksort(long int li, long int ls)
{
long int i,j,mij,aux;
i=li;
j=ls;
mij=D[(li+ls)/2];
do
{
while (D[i]<mij) ++i;
while (D[j]>mij) --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;
}
}
while (i<=j);
if (li<j) quicksort(li,j);
if (i<ls) quicksort(i,ls);
}
int main()
{
freopen("orase.in","r",stdin);
scanf("%ld %ld", &m, &n);
for (int i=1;i<=n;++i)
scanf("%ld %ld",&D[i],&L[i]);
quicksort(1,n);
long int maxim=0,max=0;
for (int i=1;i<=n;++i)
if (L[i]-D[i]>maxim)
maxim=L[i]-D[i];
for (int i=1;i<=n;++i)
if (maxim+L[i]+D[i]>max)
max=L[i]+D[i]+maxim;
freopen("orase.out","w",stdout);
printf("%ld\n",max);
return 0;
}