Cod sursa(job #208302)

Utilizator tamicTamas Iulia tamic Data 15 septembrie 2008 18:21:32
Problema Orase Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <stdio.h>

FILE *fin,*fout;
long d[50010],l[50010];
long i,j,n,m,max,rez;

void sort(long ll,long rr){
	long i,j,x,y;
   i=ll; j=rr; x=d[(i+j)/2];
   do{
   	while(d[i]<x) i++;
      while(x<d[j]) j--;
      if(i<=j){
      	y=d[i];d[i]=d[j];d[j]=y;
         y=l[i];l[i]=l[j];l[j]=y;
         i++; j--;
      }
   }while(i<=j);
   if(ll<j) sort(ll,j);
   if(i<rr) sort(i,rr);
}

int main(){
	fin=fopen("orase.in","r");
   fout=fopen("orase.out","w");
   fscanf(fin,"%ld%ld",&m,&n);
   for(i=1;i<=n;i++) fscanf(fin,"%ld%ld",&d[i],&l[i]);
   sort(1,n);
   max=l[1]-d[1];
   rez=0;
   for(i=2;i<=n;i++){
   	if(l[i]+d[i]+max>rez) rez=d[i]+l[i]+max;
      if(l[i]-d[i]>max) max=l[i]-d[i];
   }
   fprintf(fout,"%ld\n",rez);
   fclose(fin); fclose(fout);
   return 0;
}