Cod sursa(job #640846)
Program ferma2;
var oriz,vt,diag:array [0..1001,0..1001] of longint;
b1:array [1..1 shl 17] of char;
i,j,n,min,s,l,k:longint;
sum:int64;
fi,fo:text;
begin
assign(fi,'ferma2.in');
assign(fo,'ferma2.out');
settextbuf(fi,b1);
reset(fi); rewrite(fo);
readln(fi,n,k); l:=n-k; min:=1000000;
for i:=1 to n do
for j:=1 to i do begin
read(fi,s); sum:=sum+s;
oriz[i,j]:=oriz[i,j-1]+s;
vt[i,j]:=vt[i-1,j]+oriz[i,j];
diag[i,j]:=diag[i-1,j-1]+oriz[i,j];
end;
for i:=1 to n-l+1 do
for j:=1 to i do begin
s:=diag[i+l-1,j+l-1]-diag[i-1,j-1]-vt[i+l-1,j-1]+vt[i-1,j-1];
if s<min then min:=s;
end;
write(fo,sum-min);
close(fo);
end.