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

На ри­сун­ке схема дорог изоб­ра­же­на в виде графа, в таб­ли­це звёздоч­кой от­ме­че­но на­ли­чие до­ро­ги между двумя населёнными пунк­та­ми. Так как таб­ли­цу и схему ри­со­ва­ли не­за­ви­си­мо друг от друга, ну­ме­ра­ция пунк­тов в таб­ли­це никак не свя­за­на с бук­вен­ны­ми обо­зна­че­ни­я­ми на графе. Кроме того, при за­пол­не­нии таб­ли­цы одну до­ро­гу слу­чай­но про­пу­сти­ли. Опре­де­ли­те два населённых пунк­та, до­ро­га между ко­то­ры­ми есть на графе, но не от­ме­че­на в таб­ли­це. В от­ве­те за­пи­ши­те но­ме­ра этих пунк­тов в таб­ли­це в по­ряд­ке воз­рас­та­ния, без раз­де­ли­те­лей между ними, как дву­знач­ное число. На­при­мер, если бы в таб­ли­це была про­пу­ще­на до­ро­га между пунк­та­ми П1 и П2, в от­ве­те сле­до­ва­ло бы на­пи­сать число 12.

 

П1П2П3П4П5П6П7П8
П1
П2
П3
П4
П5
П6
П7
П8

 

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

Ре­ше­ние.

На ри­сун­ке есть один пункт сте­пе­ни 6 - И. В таб­ли­це есть пункт сте­пе­ни 5, это пункт П7, сле­до­ва­тель­но, это и есть на­се­лен­ный пункт И у ко­то­ро­го про­пу­ще­на одна до­ро­га. На гра­фи­ке есть два пунк­та (Е и Б) сте­пе­ни 4, а в таб­ли­це такой пункт толь­ко один. Сле­до­ва­тель­но, про­пу­ще­на одна из двух дорог И-Е или И-Б. На гра­фи­ке есть два пунк­та сте­пе­ни 2 име­ю­щие общие до­ро­ги с пунк­том И, это пунк­ты П2 и П3. Сле­до­ва­тель­но, пункт В это пункт П6. Так как пункт Е един­ствен­ный пункт сте­пе­ни 4 име­ю­щий общие до­ро­ги с двумя пунк­та­ми сте­пе­ни 2, то это пункт П4. Так как в таб­ли­це у пунк­та П4 толь­ко 3 до­ро­ги, сле­до­ва­тель­но, про­пу­ще­на до­ро­га И-Е, П4-П7. Ответ 47.

 

Ответ: 47.

 

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

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

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

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

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

таб­ли­ца = '12 17 18 27 34 37 45 46 56 57 58 78' # дуги по таб­ли­це

граф ='АБ АГ АИ БВ БЕ БИ ВЕ ГЖ ГИ ЕИ ЕК ЖИ ИК' # дуги по схеме

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

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

from itertools import permutations

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

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

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

print(''.join(p))

print(дуги(граф.translate(та­б­транс)) - дуги(таб­ли­ца)) # не­до­ста­ю­щая в таб­ли­це дуга


Аналоги к заданию № 76669: 76698 Все