BONUS - VOI 2011 Phần thưởng
Tác giả: ladpro98
Ngôn ngữ: Pascal
program hinhvuong;
var a,f:array[0..1000,0..1000] of longint;
n,i,j,x,y,temp,k,max:longint;
begin
readln(n,k);
for i:=1 to n do
begin
for j:=1 to n do read(a[i,j]);
end;
for i:=0 to n do f[i,0]:=0;
for j:=1 to n do f[0,j]:=0;
for i:=1 to n do
for j:=1 to n do
f[i,j]:=f[i,j-1]+f[i-1,j]-f[i-1,j-1]+a[i,j];
for x:=1 to n-k+1 do
for y:=1 to n-k+1 do
begin
temp:=f[x+k-1,y+k-1] - f[x-1,y+k-1] - f[x+k-1,y-1] + f[x-1,y-1];
if temp>max then max:=temp;
end;
write(max);
end.