显示代码纯文本
program waterfire;
const
fin='azshara.in';
fout='azshara.out';
var
i,j,n,w,maxnum,l:longint;
data,f:array[0..10000,0..1000] of longint;
f1,f2:text;
Function max(a,b:longint):longint;
Begin
if a>b then max:=a else max:=b;
End;
BEGIN
assign(f1,fin);reset(f1);
assign(f2,fout);rewrite(f2);
readln(f1,w,l);
maxnum:=0;fillchar(f,sizeof(f),0);
for i:=1 to l do
for j:=1 to w do begin
read(f1,data[i,j]);
if i=1 then f[i,j]:=data[i,j];
end;
for i:=2 to l do
for j:=1 to w do begin
if (data[i,j]<>-1) then
begin
f[i,j]:=max(f[i,j],f[i-1,j]+data[i,j]);
if (j-1>=1) then f[i,j]:=max(f[i,j],f[i-1,j-1]+data[i,j]);
if (j+1<=w) then f[i,j]:=max(f[i,j],f[i-1,j+1]+data[i,j]);
if f[i,j]>maxnum then maxnum:=f[i,j];
end;
end;
writeln(f2,maxnum);
close(f1);close(f2);
END.