讨论 / 465
伊利 2009-03-22 02:02:00
点我顶贴 收藏 删除
program dizhen;

var maxt,n,k,vn,i,j:integer;

t:real;

v:array [1..300] of integer;

sum:array [1..300,1..10000] of longint;

pass:boolean;

function max (x,y:longint):longint;

begin

if x>y then max:=x else max:=y;

end;

begin

readln(n,vn,k);

for i:=2 to n do

read(v[i]);

sum[n,vn]:=vn;

for i:=n downto 2 do

begin

pass:=false;

for j:=v[i] to v[i]+k do

if sum[i,j]>0 then

begin

pass:=true;

sum[i-1,j-1]:=max(sum[i,j]+j-1,sum[i-1,j-1]);

sum[i-1,j]:=max(sum[i,j]+j,sum[i-1,j]);

sum[i-1,j+1]:=max(sum[i,j]+j+1,sum[i-1,j+1]);

end;

end;

if not(pass) then begin write(’YI DING YAO JIAN CHI JI HUA SHENG YU’); halt; end;

maxt:=-maxint;

for j:=v[2] to v[2]+k do

if sum[2,j]>maxt then maxt:=sum[2,j];

t:=maxt/(n-1);

write(t:0:2);

end.

查看更多回复
提交回复