uses crt;
const nmax=20;
var a:array[1..nmax,1..nmax] of integer;
m,n,i,j,k,kmx,imx,jmx:byte;
sm,mx:integer;
begin
clrscr;
randomize;
repeat
write('Количество строк, четное число до ',nmax,' n=');
readln(n);
until (n in [1..nmax])and(n mod 2=0);
repeat
write('Количество столбцов, четное число до ',nmax,' m=');
readln(m);
until (m in [1..nmax])and(m mod 2=0);
for i:=1 to n do
for j:=1 to m do
a[i,j]:=random(20);
k:=0;
kmx:=1;
mx:=a[1,1]+a[1,2]+a[2,1]+a[2,2];
imx:=2;jmx:=2;
for i:=2 to n do
for j:=2 to m do
if (i mod 2=0)and(j mod 2=0) then
begin
k:=k+1;
sm:=a[i,j]+a[i-1,j]+a[i-1,j-1]+a[i,j-1];
if sm>mx then
begin
mx:=sm;
kmx:=k;
imx:=i;
jmx:=j;
end;
end;
writeln('Исходная матрица:');
for i:=1 to n do
begin
for j:=1 to m do
begin
if ((i=imx)and(j=jmx))or((i=imx-1)and(j=jmx))
or((i=imx-1)and(j=jmx-1))or((i=imx)and(j=jmx-1))then
begin
textcolor(12);
write(a[i,j]:4);
end
else
begin
textcolor(15);
write(a[i,j]:4);
end;
end;
writeln;
end;
writeln;
textcolor(15);
write('Максимальная сумма в квадрате ',kmx,' = ',mx);
readln
end.