На рисунке схема дорог изображена в виде графа, в таблице звёздочками обозначено наличие дороги между населёнными пунктами. Так как таблицу и схему рисовали независимо друг от друга, нумерация населённых пунктов в таблице никак не связана с буквенными обозначениями на графе. Выпишите последовательно без пробелов и знаков препинания указанные на графе буквенные обозначения пунктов от П1 до П9: сначала букву, соответствующую П1, затем букву, соответствующую П2,
| П1 | П2 | П3 | П4 | П5 | П6 | П7 | П8 | П9 | |
| П1 | * | * | * | * | * | ||||
| П2 | * | * | * | * | * | ||||
| П3 | * | * | * | ||||||
| П4 | * | * | |||||||
| П5 | * | * | |||||||
| П6 | * | * | * | * | |||||
| П7 | * | * | * | ||||||
| П8 | * | * | |||||||
| П9 | * | * | * | * |
Заметим, что в таблице имеется три населенных пункта степени 2. Пункты А и Ж имеют общие дороги с пунктом степени 5, а пункт К только с пунктами степени
В таблице есть два пункта степени 5, это Г и Д. Так как только Г имеет общие дороги с пунктами степени 2 (А и Ж), то пункт Г это населенный пункт П2. Тогда Д — это пункт П1.
Населенный пункт Ж имеет общие дороги с пунктами Г (пункт П2) и И (пункт П9). Следовательно, пункт Ж соответствует пункту П4. Тогда оставшийся пункт степени 2 — А, это пункт П5.
Поскольку пункт Б имеет общие дороги с пунктом А, это населенный пункт П6. Тогда оставшийся пункт В — это населенный пункт П3.
Соберем все пункты: П1 — Д, П2 — Г, П3 — В, П4 — Ж, П5 — А, П6 — Б, П7 — Е, П8 — К, П9 — И. Ответ: ДГВЖАБЕКИ.
Ответ: ДГВЖАБЕКИ.
Приведем решение Юрия Красильникова на языке Python.
def алфавит(s): return ''.join(sorted(set(s.replace(' ',''))))
# алфавит - строка из символов строки s в алфавитном порядке (кроме пробела)
def дуги(s): return set(map(алфавит,s.split()))
# дуги - множество дуг графа (пар символов), каждая пара упорядочена по алфавиту
таблица = '12 13 16 17 19 24 25 26 29 36 37 49 56 78 89' # дуги по таблице
граф = 'АБ АГ БВ БГ БД ВД ВЕ ГД ГЖ ГИ ДЕ ДИ ЕК ЖИ ИК' # дуги по схеме
# Не надо бояться включить одну дугу дважды (напр., БД и ДБ). Главное - ничего не пропустить.
print(алфавит(таблица)) # заголовок
from itertools import permutations
for p in permutations(алфавит(граф)): # все возможные перестановки буквенных обозначений
табтранс = str.maketrans(''.join(p),алфавит(таблица)) # таблица трансляции
if дуги(таблица) == дуги(граф.translate(табтранс)): # если множества дуг совпадают
print(''.join(p))

