心云间、凝听 2014-02-14 01:22:44
点我顶贴
收藏
删除
var n,m,i,j,k,L,x,y,p:longint;
max:longint;
s:array[0..100,0..100]of longint;
begin
read(n);
for i:=1 to n do
for j:=1 to n do begin
read(s[i,j]);
s[i,j]:=s[i,j]+s[i-1,j]+s[i,j-1]-s[i-1,j-1];
end;
max:=-1000000000;
for i:=1 to n do
for j:=i to n do
begin
k:=s[1,j]-s[i-1,1];
if k>max then max:=k;
for p:=2 to n do
begin
if k>0 then
k:=k+s[p,j]-s[p,i-1]-s[p-1,j]+s[p-1,i-1]
else k:=s[p,j]-s[p,i-1]-s[p-1,j]+s[p-1,i-1] ;
if k>max then max:=k;
end;
end;
writeln(max);
end.