讨论 / 我的程序有错?望大牛看看!
lijiaming12340 2011-11-01 00:05:00
点我顶贴 收藏 删除
program ss;

var f,map:array[-2..1002,-2..1002] of longint;

i,j,k,m,n,s,t,ans:longint;

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

begin

if x>y then exit(x) else exit(y);

end;

begin

readln(m,n);

for i:=-2 to 1002 do

for j:=-2 to 1002 do map[i,j]:=-1;

for i:=1 to m do

for j:=1 to n do read(map[i,j]);

fillchar(f,sizeof(f),0);

f[1,1]:=map[1,1];

for i:=1 to m do

for j:=1 to n do

if map[i,j]<>-1 then

begin

if f[i-1,j-2]>0 then f[i,j]:=max(f[i,j],f[i-1,j-2]+map[i,j]);

if f[i-2,j-1]>0 then f[i,j]:=max(f[i,j],f[i-2,j-1]+map[i,j]);

end;

ans:=0;

for i:=1 to m do ans:=max(ans,f[i,n]);

for i:=1 to n do ans:=max(ans,f[i,m]);

if ans=0 then write('cannot arrive.') else write(ans);

end.

#1 kroaity@2011-11-01 00:05:00
回复 删除
初始化
查看更多回复
提交回复