Решение смотри во вложении.
Разделим таблицу по диагонали слева направо (\).
Давайте будем идти по строчкам (вертикальный столбец 1, 2, 3, 4, ...) и искать, в каких столбцах (горизонтальная строка 1, 2, 3, 4, ...) встречается единичка:
- [1][3]
- [1][4]
- [2][3]
- [3][6]
- [4][5]
- [5][7]
- [5][8]
- [6][7]
- [7][8]
- [7][9]
Всё это значит связь между нумерованными кругами. Мы выписали все связи. Доказать это легко. 1 соединяется и с 3, и с 4, но не соединяется с 2. Так и есть, мы не выписывали пару [1][2]. 5 соединяется с 7 и 8, но не соединяется с 2. Всё так, как мы написали.
Скорость передачи данных - 1 разрешение сканера -2
скорость центрального процессора -3
Const
n=10;
var
i,j,k,m,buf:integer;
a:array[1..n,1..n]of integer;
begin
for i:=1 to n do
begin
writeln;
for m:=1 to n do
begin
a[i,m]:=random(20);
write(a[i,m]:4);
end;
end;
writeln;
writeln('k,j ?');
readln(k,j);
for m:=1 to n do
begin
buf:=a[k,m];
a[k,m]:=a[j,m];
a[j,m]:=buf;
end;
for i:=1 to n do
begin
writeln;
for m:=1 to n do
write(a[i,m]:4);
end;
end.