На рисунке схема дорог N-ского района изображена в виде графа, в таблице содержатся сведения о протяжённости каждой из этих дорог (в километрах).
| П1 | П2 | П3 | П4 | П5 | П6 | П7 | |
| П1 | 3 | 4 | |||||
| П2 | 3 | 12 | 13 | ||||
| П3 | 10 | 11 | |||||
| П4 | 10 | 9 | 7 | ||||
| П5 | 4 | 12 | 11 | 9 | 8 | 6 | |
| П6 | 13 | 8 | 5 | ||||
| П7 | 7 | 6 | 5 |
Так как таблицу и схему рисовали независимо друг от друга, то нумерация населённых пунктов в таблице никак не связана с буквенными обозначениями на графе. Определите, какова сумма протяжённостей дорог из пункта Б в пункт В и из пункта Г в пункт Д.
В ответе запишите целое число.
Заметим, что К — единственная вершина шестой степени, значит, К соответствует П5. Вершины А и Е — единственные вершины степени 2, тогда они могут соответствовать П1 и П3. Вершины Б и Д связаны с вершинами А и Е, тогда из таблицы получаем, что они могут соответствовать П2 и П4. Тогда В и Г могут соответствовать П6 и П7.
Заметим, что точное соответствие букв пунктам не важно. Таким образом, сумма протяжённостей дорог из пункта Б
Ответ: 20.
Приведём решение Артёма Гридина на языке Python.
from itertools import permutations
table = '25 156 45 357 123467 257 456'.split()
graph = 'КА КБ КВ КГ КД КЕ АБ БВ ВГ ГД ДЕ'.split()
print('1 2 3 4 5 6 7')
for p in permutations('АБВГДЕК'):
if all(str(p.index(c2)+1) in table[p.index(c1)] for c1, c2 in graph):
print(*p)
break

