Cod sursa(job #206125)

Utilizator AndreiDDiaconeasa Andrei AndreiD Data 4 septembrie 2008 20:41:54
Problema Orase Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#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;   
}