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.

Download