На рисунке схема дорог изображена в виде графа, в таблице звёздочками обозначено наличие дороги между населёнными пунктами.
| П1 | П2 | П3 | П4 | П5 | П6 | П7 | П8 | П9 | |
| П1 | |||||||||
| П2 | |||||||||
| П3 | |||||||||
| П4 | |||||||||
| П5 | |||||||||
| П6 | |||||||||
| П7 | |||||||||
| П8 | |||||||||
| П9 |
Так как таблицу и схему рисовали независимо друг от друга, нумерация населённых пунктов в таблице никак не связана с буквенными обозначениями на графе. Выпишите последовательно без пробелов и знаков препинания указанные на графе буквенные обозначения пунктов от П1 до П9: сначала букву, соответствующую П1, затем букву, соответствующую П2, и т. д.
На графе два населённых пункта степени 2 (пункты Д и И). Только пункт И имеет общие дороги с пунктом степени 2 (пунктом К). Тогда пункт И это пункт П3, а пункт Д это пункт П9. Так как с пунктом И имеет общую дорогу пункт К, то это пункт П2. Тогда Е это пункт П5, а В это пункт П1. С пунктом В связан пункт Б, это населенный пункт П8. Остался последний не распределенный пункт степени 2, это пункт Г, ему соответствует населенный пункт П7. Пункт А имеет общие дороги с пунктами Г (П7) и Б (П8), ему соответствует пункт П6. Тогда Ж это пункт П4.
Выпишем все населенные пункты по порядку. Получаем: ВКИЖЕАГБД.
Ответ: ВКИЖЕАГБД.
Приведём решение Юрия Красильникова на языке Python.
def алфавит(s): return ''.join(sorted(set(s.replace(' ',''))))
# алфавит - строка из символов строки s в алфавитном порядке (кроме пробела)
def дуги(s): return set(map(алфавит,s.split()))
# дуги - множество дуг графа (пар символов), каждая пара упорядочена по алфавиту
таблица = '15 18 23 25 34 35 39 47 49 67 68 69 89' # дуги по таблице
граф ='АБ АГ АД БВ БД ВЕ ГЖ ДЖ ДИ ЕИ ЕК ЖИ ИК' # дуги по схеме
# Не надо бояться включить одну дугу дважды (напр., БД и ДБ). Главное - ничего не пропустить.
print(алфавит(таблица)) # заголовок
from itertools import permutations
for p in permutations(алфавит(граф)): # все возможные перестановки буквенных обозначений
табтранс = str.maketrans(''.join(p),алфавит(таблица)) # таблица трансляции
if дуги(таблица) == дуги(граф.translate(табтранс)): # если множества дуг совпадают
print(''.join(p))

