Cod sursa(job #206082)

Utilizator Andrei200Andrei200 Andrei200 Data 4 septembrie 2008 15:09:55
Problema Orase Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <stdio.h>

#define NMAX 5000

long int n,m,i,j,aux,maxim,q;
long int D[NMAX],L[NMAX];

void quicksort(int li, int ls)
{
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","rt",stdin);
freopen("orase.out","wt",stdout);

scanf("%ld %ld", &m, &n);

for (i=1;i<=n;i++)
    scanf("%ld %ld", &D[i], &L[i]);

quicksort(1,n);
maxim=0;
j=1;
while (j<=n)
      {
       i=j+1;
	while (i<=n)
	      {
		 q=D[i]+L[i]+L[j]-D[j];
	       if (maxim<q)
		   maxim=q;
		   ++i;
		   }
		  ++j;
		    }
printf("%ld\n",maxim);
return 0;
}