VAR
n, m, res: LONGINT;
a, s: ARRAY[1..400, 0..400] OF LONGINT;
f, f2: ARRAY[1..400] OF LONGINT;
PROCEDURE init;
VAR
i, j: LONGINT;
s: STRING;
BEGIN
READLN(n, m);
FOR i:=1 TO n DO BEGIN
READLN(s);
FOR j:=1 TO m DO
IF s[j] = ’0’ THEN a[i, j] := -1 ELSE a[i, j] := 1;
END;
END;
PROCEDURE xxx;
VAR
i, j, k, max: LONGINT;
BEGIN
FOR i:=1 TO m DO s[0, i] := 0;
FOR i:=1 TO n DO
FOR j:=1 TO m DO s[i, j] := s[i - 1, j] + a[i, j];
res := 0;
FOR i:=1 TO n DO
FOR j:=i TO n DO BEGIN
FILLCHAR(f, SIZEOF(f), 0);
FOR k:=1 TO m DO f[k] := s[j, k] - s[i - 1, k];
FILLCHAR(f2, SIZEOF(f2), 0);
f2[1] := f[1];
FOR k:=2 TO m DO BEGIN
IF f2[k - 1] + f[k] > f[k] THEN
f2[k] := f2[k - 1] + f[k]
ELSE
f2[k] := f[k];
END;
max := 0;
FOR k:=1 TO m DO
IF f2[k] > max THEN max := f2[k];
IF max > res THEN res := max;
END;
END;
BEGIN
init;
xxx;
WRITELN(res);
END.
第8个点WA了。
把所有的1..400改为0..400就对了。
状态: Accepted
测评机: Xeost[5]
得分: 100分
提交日期: 2009-1-22 10:49:00
有效耗时: 4000毫秒
测试结果1: 通过本测试点|有效耗时172:ms
测试结果2: 通过本测试点|有效耗时47:ms
测试结果3: 通过本测试点|有效耗时172:ms
测试结果4: 通过本测试点|有效耗时218:ms
测试结果5: 通过本测试点|有效耗时250:ms
测试结果6: 通过本测试点|有效耗时297:ms
测试结果7: 通过本测试点|有效耗时547:ms
测试结果8: 通过本测试点|有效耗时828:ms
测试结果9: 通过本测试点|有效耗时766:ms
测试结果10: 通过本测试点|有效耗时703:ms