Новое Распределяем каналы MAX по категориям и территориям. Читать новость

🎯 ЕГЭ, задание 23: ищем минимальную длину пути из 1 в 100, но только если она в диапазоне [18 000; 22 000].



Найдите минимальную длину пути из вершины с номером 1 в вершину с номером 100 среди всех путей с длинами от 18000 до 22000 (включительно). Гарантируется, что хотя бы один такой маршрут существует. Запишите в ответе целую часть найденной длины.

Поэтому берём надёжную архитектуру: чёткие условия, настоящая бесконечность, никакой двойной арифметики.

✅ Готовый код — можно копировать на практику:

from collections import defaultdict
from functools import lru_cache

graf = defaultdict(list)
with open("23.txt") as f:
for line in f:
st, end, dl = line.split()
graf[int(end)].append((int(st), float(dl)))

@lru_cache(maxsize=None)
def dlina(x, sm):
if x == 1:
return 0.0 if 18000 <= sm <= 22000 else float('inf')
mn = float('inf')
for prev, w in graf[x]:
res = dlina(prev, sm + w)
if res != float('inf'):
mn = min(mn, res + w)
return mn

print(int(dlina(100, 0.0)))

#егэинформатика #задание23 #графы_егэ #алгоритмы_егэ #python_для_егэ #разбор_задания23 #айти #хрупкие_решения #подготовка_к_егэ
Просмотры: 12
Открыть в MAX Сообщить о неточности

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти