如果发现广告等破坏行为,请尽量将条目恢复到较早的版本而不是把相应内容直接删除,谢谢合作。

URAL/1146

来自"NOCOW"

跳转到: 导航, 搜索
var cost,sum:array[0..100,0..100] of longint;
    temp:array[0..100] of longint;
    n,tot:longint;
procedure init;
var i,j:longint;
begin
    readln(n);
    for i:=1 to n do
    for j:=1 to n do
    read(cost[i,j]);
    for i:=1 to n do
    for j:=1 to n do
    sum[i,j]:=sum[i-1,j]+cost[i,j];
end;
procedure solve;
var i,j,k,best,ans:longint;
begin
    tot:=-maxlongint;
    for i:=n downto 1 do
     for j:=i-1 downto 0 do
     begin
      for k:=1 to n do temp[k]:=sum[i,k]-sum[j,k];
      ans:=-maxlongint;
      best:=0;
      for k:=1 to n do
      begin
       inc(best,temp[k]);
       if best>ans then ans:=best;
       if best<0 then best:=0;
      end;
      if ans>tot then tot:=ans;
     end;
end;
procedure print;
begin
    writeln(tot);
end;
begin
    init;
    solve;
    print;
end.
                        //BY Lv.wind
个人工具