Задания
Версия для печати и копирования в MS Word
Тип 1 № 16030
i

На ри­сун­ке слева изоб­ра­же­на схема дорог Н-⁠ского рай­о­на, в таб­ли­це звёздоч­кой обо­зна­че­но на­ли­чие до­ро­ги из од­но­го населённого пунк­та в дру­гой. От­сут­ствие звёздоч­ки озна­ча­ет, что такой до­ро­ги нет.

 

1234567
1**
2***
3***
4**
5***
6***
7**

 

Каж­до­му населённому пунк­ту на схеме со­от­вет­ству­ет его номер в таб­ли­це, но не­из­вест­но, какой имен­но номер. Опре­де­ли­те, какие но­ме­ра населённых пунк­тов в таб­ли­це могут со­от­вет­ство­вать населённым пунк­там B и C на схеме. В от­ве­те за­пи­ши­те эти два но­ме­ра в воз­рас­та­ю­щем по­ряд­ке без про­бе­лов и зна­ков пре­пи­на­ния.

Спрятать решение

Ре­ше­ние.

За­ме­тим, что D  — един­ствен­ная вер­ши­на сте­пе­ни 2, ко­то­рая свя­за­на с вер­ши­на­ми сте­пе­ни 3  — B и C, свя­зан­ны­ми с осталь­ны­ми вер­ши­на­ми сте­пе­ни 2. Зна­чит, D со­от­вет­ству­ет П4. Таким об­ра­зом, населённым пунк­там B и C со­от­вет­ству­ют пунк­ты П2 и П6.

 

Ответ: 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()

 

При­ведём ре­ше­ние Юрия Кра­силь­ни­ко­ва на языке Python.

def ал­фа­вит(s): return ''.join(sorted(set(s.replace(' ',''))))

# ал­фа­вит - стро­ка из сим­во­лов стро­ки s в ал­фа­вит­ном по­ряд­ке (кроме про­бе­ла)

def дуги(s): return set(map(ал­фа­вит,s.split()))

# дуги - мно­же­ство дуг графа (пар сим­во­лов), каж­дая пара упо­ря­до­че­на по ал­фа­ви­ту

таб­ли­ца = '15 16 23 24 27 35 37 46 56' # дуги по таб­ли­це

граф = 'AB AF BD BF CD CE CG EG FG' # дуги по схеме

# Не надо бо­ять­ся вклю­чить одну дугу два­жды (напр., БД и ДБ). Глав­ное - ни­че­го не про­пу­стить.

print(ал­фа­вит(таб­ли­ца)) # за­го­ло­вок

from itertools import permutations

for p in permutations(ал­фа­вит(граф)): # все воз­мож­ные пе­ре­ста­нов­ки бук­вен­ных обо­зна­че­ний

та­б­транс = str.maketrans(''.join(p),ал­фа­вит(таб­ли­ца)) # таб­ли­ца транс­ля­ции

if дуги(таб­ли­ца) == дуги(граф.translate(та­б­транс)): # если мно­же­ства дуг сов­па­да­ют

print(''.join(p), 'BC - ','BC'.translate(та­б­транс))

Источник: Де­мон­стра­ци­он­ная вер­сия ЕГЭ—2019 по ин­фор­ма­ти­ке
Раздел кодификатора ФИПИ: 1.3.1 Опи­са­ние ре­аль­но­го объ­ек­та и про­цес­са