Pagini recente » Cod sursa (job #92451) | Cod sursa (job #1057473) | Cod sursa (job #2047805) | Cod sursa (job #2261485) | Cod sursa (job #109927)
Cod sursa(job #109927)
program preONI2008;
type num=array [1..50] of longint;
var f,g:text;
n,i:byte;
x,y:num;
z:array[1..50]of real;
ps,pj:longint;
procedure maxim(var n:byte; var x,y:num);
var i,j,poz:byte;
max:real;
begin
max:=z[1];
poz:=1;
for i:=1 to n do if z[i]<max then begin
max:=z[i];
poz:=i;
end;
ps:=ps div x[poz];
pj:=pj div y[poz];
for j:=poz to n do begin
x[j]:=x[j+1];
y[j]:=y[j+1];
end;
n:=n-1;
end;
procedure maxim_mic(var n:byte);
var max:real;
i,j,poz:byte;
gasit:boolean;
begin
gasit:=false;
i:=1;
while ((i<=n) and not gasit) do
begin
if z[i]<1 then begin
gasit:=true;
max:=z[i];
poz:=i;
end;
i:=i+1;
end;
for j:=i-1 to n do if ((z[j]>max) and (z[j]<1)) then begin
max:=z[j];
poz:=j;
end;
ps:=ps*x[poz];
pj:=pj*y[poz];
for j:=poz to n do begin
x[j]:=x[j+1];
y[j]:=y[j+1];
end;
n:=n-1;
end;
begin
assign (f,'aliens.in'); reset(f);
assign (g,'aliens.out'); rewrite(g);
read(f,n);
for i:=1 to n do readln (f,x[i], y[i]);
for i:=1 to n do z[i]:=x[i]/y[i];
ps:=1;
pj:=1;
for i:=1 to n do if z[i]>1 then begin
ps:=ps*x[i];
pj:=pj*y[i];
end;
if (ps mod pj<>0) then
while (ps mod pj<>0) do
begin
maxim(n,x,y);
maxim_mic(n);
end;
write(g,ps/pj:2:0);
close(f);
close(g);
end.