Как в ЕГЭ · 22 из 28
№1. Схема дорог и таблица
По мотивам задания №1. Слева на рисунке — схема дорог: пункты подписаны буквами, но длин на ней нет. Справа — таблица длин дорог: длины есть, но пункты в ней пронумерованы, и как номера соотносятся с буквами, неизвестно. Спрашивают длину одной дороги — между двумя пунктами, названными буквами.
Что сделать
Сопоставьте буквы схемы с номерами таблицы и найдите длину дороги между двумя пунктами.
Что приходит
tablica— таблица длин:tablica[i][j]— длина дороги между пунктамиi + 1иj + 1, 0 — дороги нетskhema— схема: словарь «буква → строка букв соседей», например{"А": "БВ", "Б": "А", …}otkudaиkuda— две буквы, соседние на схеме
Что вернуть
Длину дороги числом; если сопоставлений нет или разные сопоставления дают разную длину — None.
Допишите функцию dlina_dorogi в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
На схеме А и В — развилки на три дороги, Б и Д — тупики, Г соединён с А и В. В таблице на три дороги — пункты 2 и 5. Какой из них А, а какой В, по схеме не понять — она симметрична, — но дорога между ними одна: 23 км.
dlina_dorogi([[0, 0, 0, 0, 31], [0, 0, 12, 7, 23], [0, 12, 0, 0, 0], [0, 7, 0, 0, 32], [31, 23, 0, 32, 0]], {"А": "БВГ", "Б": "А", "В": "АГД", "Г": "АВ", "Д": "В"}, "А", "В")
23
Таблица квадратная и симметричная, пунктов в ней столько же, сколько букв на схеме (не больше восьми). Схема тоже симметрична: если В есть среди соседей Б, то и Б — среди соседей В.
Сопоставление — каждой букве свой номер пункта, разным буквам — разные. Оно подходит, если для любых двух букв дорога между ними на схеме есть тогда и только тогда, когда в таблице между их пунктами стоит не ноль.
Переберите все подходящие сопоставления и для каждого возьмите длину дороги otkuda–kuda из таблицы. Если все они дают одно и то же число — верните его. Если подходящих сопоставлений нет или длины получаются разные — верните None.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.