D. Цикл через заданную вершину
Определите, проходит ли через вершину хотя бы один цикл отрицательного веса.
Обычный Форд — Беллман отвечает лишь на вопрос «есть ли отрицательный цикл где-нибудь», и через он проходить не обязан. Нужна динамика по числу рёбер — та же, что в классной задаче O.
Пусть — наименьший вес маршрута ровно из рёбер. Тогда через проходит отрицательный цикл тогда и только тогда, когда для какого-нибудь от 1 до .
Больше рёбер перебирать незачем: если замкнутый маршрут отрицательного веса через существует, то существует и такой, где вершины не повторяются, а значит рёбер в нём не больше .
Стоит это , что при вполне посильно.
Формат ввода
Первая строка содержит числа (), () и .
Далее идут строк с рёбрами: начало, конец и вес (). Возможны кратные рёбра и петли.
Формат вывода
Одно слово: YES или NO.
Примеры
3 3 1 1 2 1 2 3 1 3 1 -3
YES
3 3 1 2 3 -5 3 2 1 1 2 1
NO