Cod sursa(job #742358)

Utilizator Buzu_Tudor_RoCont vechi Buzu_Tudor_Ro Data 29 aprilie 2012 20:17:39
Problema Orase Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.11 kb
Program Orase_1;
var fi,fo : text;
    i,n,m,d_y_x,solutie : longint;
    x,y : array[0..1000005] of longint;

Procedure sw1(var a:longint; var b:longint);
var aux:longint;
begin
    aux:=a; a:=b; b:=aux;
end;

Procedure quick(left,right:longint);
var mijl,i,j : longint;
begin
    mijl:=x[(left+right) div 2];
    i:=left; j:=right;

    while i<j do begin
                 while x[i]<mijl do i:=i+1;
                 while x[j]>mijl do j:=j-1;
                 if i<=j then begin
                              sw1(x[i],x[j]); sw1(y[i],y[j]);
                              i:=i+1; j:=j-1;
                              end;
                 end;
end;

begin
    assign(fi,'orase.in'); reset(fi); readln(fi,m,n);
    assign(fo,'orase.out'); rewrite(fo);

    for i:=1 to n do readln(fi,x[i],y[i]);
    quick(1,n); solutie:=0; d_y_x:=y[1]-x[1];

    for i:=2 to n do begin
                     if y[i-1]-x[i-1]>d_y_x then d_y_x:=y[i-1]-x[i-1];
                     if y[i]+x[i]+d_y_x>solutie then solutie:=y[i]+x[i]+d_y_x;
                     end;
    write(fo,solutie);
    close(fi); close(fo);
end.