NOIP2012国王游戏
一交A,TAT
program game;
Type
gjd=record
len:longint;
d:array[0..2000] of longint;
end;
Var
n,i:longint;
a,b:array[0..10002] of longint;
now,max,q:gjd;
Procedure fopen;
begin
assign(input,'game.in');
assign(output,'game.out');
reset(input);
rewrite(output);
end;
Procedure fclose;
begin
close(input);
close(output);
end;
Procedure swap(var p,q:longint);
var
y:longint;
begin
y:=p;
p:=q;
q:=y;
end;
Procedure qsort(l,r:longint);
var
i,j,x:longint;
begin
i:=l;j:=r;x:=a[(l+r) div 2]*b[(l+r) div 2];
repeat
while a[i]*b[i]<x do inc(i);
while a[j]*b[j]>x do dec(j);
if i<=j then
begin
swap(a[i],a[j]);
swap(b[i],b[j]);
inc(i);
dec(j);
end;
until i>j;
if l<j then qsort(l,j);
if i<r then qsort(i,r);
end;
Procedure print(P:gjd);
var
i:longint;
begin
for i:=p.len downto 1 do
begin
if i<>p.len then
begin
if p.d[i]<10 then write(0);
if p.d[i]<100 then write(0);
if p.d[i]<1000 then write(0);
end;
write(p.d[i]);
end;
end;
Function more(p,q:gjd):boolean;
var
i:longint;
begin
if p.len>q.len then exit(true);
for i:=p.len downto 1 do
begin
if p.d[i]>q.d[i] then exit(true);
if p.d[i]<q.d[i] then exit(false);
end;
exit(false);
end;
Function cheng(p:gjd;q:longint):gjd;
var
i,jw:longint;
begin
cheng:=p;
jw:=0;
for i:=1 to cheng.len do
begin
cheng.d[i]:=cheng.d[i]*q+jw;
jw:=cheng.d[i] div 10000;
cheng.d[i]:=cheng.d[i] mod 10000;
end;
while jw>0 do
begin
inc(cheng.len);
cheng.d[cheng.len]:=jw;
jw:=cheng.d[cheng.len] div 10000;
cheng.d[cheng.len]:=cheng.d[cheng.len] mod 10000;
end;
while (cheng.len>1) and (cheng.d[cheng.len]=0) do dec(cheng.len);
end;
Function divide(P:gjd;q:longint):gjd;
var
ans:gjd;
i,jw:longint;
begin
ans:=p;
jw:=0;
for i:=ans.len downto 1 do
begin
ans.d[i]:=(ans.d[i]+jw*10000) div q;
jw:=(p.d[i]+jw*10000)-ans.d[i]*q;
end;
while (ans.len>1) and (ans.d[ans.len]=0) do dec(ans.len);
exit(ans);
end;
begin
fopen;
readln(n);
for i:=0 to n do
readln(a[i],b[i]);
qsort(1,n);
now.len:=1;
now.d[1]:=a[0];
max.len:=1;
max.d[1]:=0;
for i:=1 to n do
begin
q:=divide(now,b[i]);
if more(q,max) then max:=q;
now:=cheng(now,a[i]);
end;
print(max);
fclose;
end.

浙公网安备 33010602011771号