(来自本人百度空间 2009-09-24 18:41)
program money;
var
pri:array[1..100001] of real;
p,p1:real;
n,i:longint;
cho:boolean;
begin
assign(input,'money.in');
reset(input);
assign(output,'money.out');
rewrite(output);
readln(n);
for i:=1 to n do readln(pri[i]);
close(input);
while pri[n-1]>=pri[n] do dec(n);
cho:=true;
p:=1;
p1:=1;
if pri[n-1]<pri[n] then pri[n+1]:=-1
else pri[n+1]:=maxlongint;
i:=1;
while i<=n do begin
if cho then begin
while (pri[i]>=pri[i+1]) and (i<=n) do inc(i);
p1:=p;
p:=p/pri[i];
cho:=not(cho);
end else begin
while (pri[i]<=pri[i+1]) and (i<=n) do inc(i);
p1:=p;
p:=p*pri[i];
cho:=not(cho);
end;
end;
writeln(-p:0:3);
close(output);
end.
好不容易过了10个点