uses crt;
var a:array[1..20,1..20]of integer;
n,i,j,c,k,l,p:integer;
begin
clrscr;
randomize;
write('Vvedite razmernost matricy n= ');
readln(n);
Writeln('Matrica:');
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=random(40)+10;
write(a[i,j]:4);
end;
writeln;
end;
for l:=1 to 2*n-1 do
begin
if l<=n then
begin
for i:=n-l+1 to n-1 do
for j:=1 to l-1 do
for c:=i+1 to n do
for k:=j+1 to l do
if (j=i-n+l)and(k=c-n+l)and(a[i,j]>a[c,k]) then
begin
p:=a[i,j];
a[i,j]:=a[c,k];
a[c,k]:=p;
end;
end
else if l>n then
begin
for i:=1 to 2*n-l-1 do
for j:=l-n+1 to n-1 do
for c:=i+1 to 2*n-l do
for k:=j+1 to n do
if (j=i-n+l)and(k=c-n+l)and(a[i,j]>a[c,k]) then
begin
p:=a[i,j];
a[i,j]:=a[c,k];
a[c,k]:=p;
end;
end;
end;
writeln('Sortirovka diagonalej:');
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]:4);
writeln;
end;
readln
end.