Cod sursa(job #150116)

Utilizator antoanelaAntoanela Siminiuc antoanela Data 6 martie 2008 16:35:23
Problema Orase Scor 80
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.1 kb
program orase;
var f,g:text;
    max,m,n,i,j,ord,aux,k,d:longint;
    a,b:array[0..1000002]of longint;
function poz(li,ls:longint):longint;
var i,j,modi,modj,m,aux:longint;
begin
  i:=li;
  j:=ls;
  modi:=0;
  modj:=-1;
  while (i<=j)do
    begin
      if (a[i]>a[j])then
        begin
          aux:=a[i];
          a[i]:=a[j];
          a[j]:=aux;
          aux:=b[i];
          b[i]:=b[j];
          b[j]:=aux;
          m:=modi;
          modi:=-modj;
          modj:=-m;
        end;
      i:=i+modi;
      j:=j+modj;
    end;
  poz:=i;
end;
procedure quick(li,ls:longint);
begin
  if (li<ls)then
    begin
      k:=poz(li,ls);
      quick(li,k-1);
      quick(k+1,ls);
    end;
end;

begin
assign(f,'orase.in');
assign(g,'orase.out');
reset(f);
rewrite(g);
read(f,m,n);
for i:=1 to n do read(f,a[i],b[i]);
quick(1,n);
if (a[1]>b[1])then m:=a[1]-b[1] else m:=b[1]-a[1];
for i:=2 to n do
  begin
    if (a[i]+b[i]+m>max)then max:=m+a[i]+b[i];
    if (a[i]>b[i])then d:=a[i]-b[i] else d:=b[i]-a[i];
    if (d>m)then m:=d;
  end;
write(g,max);
closE(f);
close(g);
end.