uses crt;
var
b,c,d,e,max,min,z,i2,i3,i1,i,stolb,strok,maxs,maxt,mint,mins:integer;
a,bo :array[1..100,1..100] of integer;
begin
randomize;
clrscr;
writeln('Введите число элементов(должно быть кратно 5)');
readln(b);
if b mod 5 <> 0 then
repeat
clrscr;
writeln('вы ввели число не кратное 5, повторите ввод');
readln(b);
until b mod 5 =0;
writeln('Введите число столбцов\строк соответственно');
readln(stolb,strok);
if (stolb*strok) mod 5 <> 0 then
repeat
clrscr;
writeln('вы ввели не коректное число строк\столбцов, повторите ввод');
readln(stolb,strok);
until (stolb*strok) mod 5 =0;
writeln('Заполните матрицу ',strok,'*',stolb,'(Строки\столбцы)');
for i1:=1 to strok do
for i2:=1 to stolb do begin readln(a[i1,i2]); bo[i1,i2]:=a[i1,i2] end;
for i1:=1 to strok do begin
for i2:=1 to stolb do
write(a[i1,i2]:3);
writeln;
end;
readln;
for d:=1 to b do
for c:=1 to b do begin
for i1:=1 to strok do
for i2:=1 to stolb do begin a[i1,i2]:=bo[i1,i2] end;
if ((c*d) mod 5=0) and ((c*d)<=b) and (c<=stolb) and (d<=strok) then begin
max:=a[1,1];
min:=a[1,1];
maxs:=1;
maxt:=1;
mins:=1;
mint:=1;
for i:=1 to d do
for z:=1 to c do
if max>a[i,z] then begin
min:=a[i,z];
mins:=i;
mint:=z;
end
else begin
max:=a[i,z];
maxs:=i;
maxt:=z;
end;
a[maxs,maxt]:=min;
a[mins,mint]:=max;
for i1:=1 to d do begin
for i2:=1 to c do
write(a[i1,i2]:3);
writeln;
end;
writeln;
readln;
end;
end;
end.