n городов с номерами от 0 до n − 1. Город i приносит values[i] очков. Двусторонние дороги заданы списком roads: пара [a, b] означает дорогу между городами a и b.
Маршрут — это последовательность из **четырёх разных** городов, в которой каждые два соседних города соединены дорогой. Его ценность — сумма очков этих четырёх городов.
Верните наибольшую ценность маршрута или -1, если ни одного маршрута нет.values=[3, 10, 1, 7, 6], roads=[[0, 1], [1, 2], [2, 3], [1, 3], [3, 4]] → 26
Маршрут 0 → 1 → 3 → 4 проходит по дорогам 0–1, 1–3, 3–4 и набирает 3 + 10 + 7 + 6 = 26. Город 2 (1 очко) брать невыгодно.
values=[5, 5, 5, 5, 5], roads=[[0, 1], [0, 2], [0, 3], [0, 4]] → -1
Все дороги идут из города 0. Из любого другого города можно уехать только в 0, а туда возвращаться нельзя, поэтому маршрута из четырёх городов нет: -1.
values=[2, 4, 6, 8], roads=[[0, 1], [1, 2], [2, 3]] → 20
Единственный путь — по цепочке 0 → 1 → 2 → 3 (или обратно): 2 + 4 + 6 + 8 = 20.
n = values.length ≤ 5 · 10⁴values[i] ≤ 10⁸roads.length ≤ 5 · 10⁴roads[i] = [a, b], 0 ≤ a, b ≤ n − 1, a ≠ bvalues=[3, 10, 1, 7, 6], roads=[[0, 1], [1, 2], [2, 3], [1, 3], [3, 4]]
26
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 69 тестов на сервере, включая скрытые.