Cod sursa(job #206124)

Utilizator Andrei200Andrei200 Andrei200 Data 4 septembrie 2008 20:38:12
Problema Orase Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 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);   
long int i;   
for (i=1;i<=n;i++)   
    scanf("%ld %ld", &D[i], &L[i]);   
quicksort(1,n);   
long int maxim=0,j;   
j=1;   
while (j<=n)   
      {   
       i=j+1;   
    while (i<=n)   
          {   
          if (maxim<D[i]+L[i]+L[j]-D[j])   
           maxim=D[i]+L[i]+L[j]-D[j];   
           ++i;   
           }   
          ++j;   
            }   
freopen("orase.out","w",stdout);   
printf("%ld\n",maxim);   
return 0;   
}