На рисунке слева изображена схема дорог Н-ского района, в таблице звёздочкой обозначено наличие дороги из одного населённого пункта в другой. Отсутствие звёздочки означает, что такой дороги нет.
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| 1 | * | * | |||||
| 2 | * | * | * | ||||
| 3 | * | * | * | ||||
| 4 | * | * | |||||
| 5 | * | * | * | ||||
| 6 | * | * | * | ||||
| 7 | * | * |
Каждому населённому пункту на схеме соответствует его номер в таблице, но неизвестно, какой именно номер. Определите, какие номера населённых пунктов в таблице могут соответствовать населённым пунктам B и C на схеме. В ответе запишите эти два номера в возрастающем порядке без пробелов и знаков препинания.
Заметим, что D — единственная вершина степени 2, которая связана с вершинами степени 3 — B и C, связанными с остальными вершинами степени 2. Значит, D соответствует П4. Таким образом, населённым пунктам B и C соответствуют пункты
Ответ: 26.
Приведём решение Фёдора Мизюрёва на языке Python.
import itertools
def road():
routes = 'DB DC CE CG EG GF FA FB AB'
tab = [15, 16, 23, 24, 27, 35, 37, 46, 56]
for perm in itertools.permutations('ABCDEFG'):
temp = [perm[t // 10 - 1 ] + perm[t % 10 - 1] for t in tab]
if all([m in routes or m[::-1] in routes for m in temp]):
print(perm)
B_index = perm.index('B')
C_index = perm.index('C')
print(f"ответ:{B_index + 1}{C_index + 1}")
road()

