Cod sursa(job #133707)

Utilizator antoanelaAntoanela Siminiuc antoanela Data 9 februarie 2008 15:44:33
Problema Orase Scor 40
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.99 kb
program orase;
var f,g:text;
    m,n,i,j,ord,aux,k: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);
for i:=1 to n do
  for j:=i+1 to n do
    if (b[i]+b[j]+a[j]-a[i]>m)then
       m:=b[i]+b[j]+a[j]-a[i];
write(g,m);
closE(f);
close(g);
end.