На рисунке схема дорог Н-ского района изображена в виде графа, в таблице содержатся сведения о протяжённости каждой из этих дорог (в километрах).
| П1 | П2 | П3 | П4 | П5 | П6 | П7 | |
| П1 | 39 | 3 | |||||
| П2 | 39 | 8 | 5 | ||||
| П3 | 3 | 2 | |||||
| П4 | 8 | 53 | |||||
| П5 | 5 | 21 | 30 | ||||
| П6 | 2 | 21 | 13 | ||||
| П7 | 53 | 30 | 13 |
Так как таблицу и схему рисовали независимо друг от друга, то нумерация населённых пунктов в таблице никак не связана с буквенными обозначениями на графе. Определите, какова сумма протяжённостей дорог из пункта D в пункт B и из пункта F в пункт A.
В ответе запишите целое число.
Заметим, что B — единственная вершина степени 2, не связанная с другими вершинами степени 2. Значит, вершина B соответствует П4. Вершина F — единственная вершина степени 3, связанная с двумя вершинами степени 2. Следовательно, вершина F соответствует П2. Вершина B связана только с вершинами F и D, значит, вершина D соответствует П7. Вершина A — единственная вершина степени 3, связанная и с вершиной D, и с вершиной F. Следовательно, вершина A соответствует П5.
Тогда сумма протяжённостей дорог из пункта D в пункт B и из пункта F в пункт A равна 53 + 5 = 58.
Ответ: 58.
Приведём другое решение Красильникова Юрия языке Python.
import itertools
graph={'A':'DEF','B':'DF','C':'FG','D':'ABE','E':'ADG','F':'ABC','G':'CE'}
matrix=(
'.WW....' +
'W..WW..' +
'W....W.' +
'.W....W' +
'.W...WW' +
'..W.W.W' +
'...WWW.' )
for p in itertools.permutations(graph):
mymatrix = ''
for x in p:
for y in p:
mymatrix += 'W' if y in graph[x] else '.'
if matrix==mymatrix:
print(p) #Названия населенных пунктов выводятся по порядку, первая буква — первый пункт, вторая — второй и т. д.

