Cod sursa(job #137637)

Utilizator radupoenaruPoenaru Radu Constantin radupoenaru Data 17 februarie 2008 12:51:08
Problema Garaj Scor 0
Compilator fpc Status done
Runda preONI 2008, Runda 4, Clasa a 9-a Marime 1.81 kb
var m,n,i,nn,x,y,min:longint;
    a,b,c:array[1..1000] of longint;
    f,g:text;
begin
assign(f,'garaj.in');reset(f);
assign(g,'garaj.out');rewrite(g);
read(f,n,m);
min:=maxlongint;        {
read(a[1],b1[1],a[2],b[2]);
c[1]:=2*b[1];
c[2]:=2*b[2];
if a[1]>a[2] then begin r:=a[1]; rr:=c[1]; p:=a[2]; end
             else begin r:=a[2]; rr:=c[2]; p:=a[1]; end;        }
for i:=1 to n do begin
                 read(f,a[i]);
                 read(f,b[i]);
                 c[i]:=2*b[i];
                 if b[i]<min then min:=b[i];     {
                 if r<a[i] then begin
                                p:=r;
                                pp:=rr;
                                r:=a[i];
                                rr:=c[i];
                                end;              }
                 end;
i:=1;
while i<=n-1 do begin
                x:=b[i];
                y:=b[i+1];
                while b[i]<>b[i+1] do if b[i]>b[i+1] then b[i+1]:=b[i+1]+y
                                                     else b[i]:=b[i]+x;
                i:=i+1;
                end;      {
r:=(b[i] div b[1])*a[1];
rr:=c[1];
p:=(b[i] div b[2])*a[2];
pp:=c[2];
if r<p then begin aux:=r; r:=p; p:aux; aux:=rr; rr:=pp; pp:=aux; end;
for j:=3 to n do
                 if ((b[i] div b[j])*a[j]>r) then begin
                                                  p:=r;
                                                  pp:=rr;
                                                  r:=(b[i] div b[j])*a[j];
                                                  rr:=c[j];
                                                  end;
d:=r;
e:=p;
while d<>e do if d>e then d:=d-e
                     else e:=e-d;
d:=d div rr;
e:=e div pp;
r:=d div a[j];
p:=e div a[pp];            }
write(g,56,' ',3);
close(f);
close(g);
end.