EduBrick

J. Защищённое соединение

3000 мс · 256 МБ · всё или ничего

В стране nn городов. В некоторых стоят дата-центры первой компании, в некоторых — второй, в остальных ничего. Известны mm пар городов, которые можно соединить сегментом связи, и стоимость каждого сегмента.

Канал должен начинаться в городе с дата-центром первой компании и заканчиваться в городе с дата-центром второй. Найдите наименьшую стоимость такого канала.

Запускать Дейкстру из каждого города первой компании — до nn запусков и O(nmlog⁡n)O(nm\log n). Не нужно: положите в кучу сразу все города первой компании с расстоянием ноль. Это тот же многоисточниковый обход, что был в занятии по обходу в ширину, только с весами.

Формально это Дейкстра из фиктивной вершины, соединённой рёбрами нулевого веса со всеми источниками; добавлять её в граф не нужно.

Формат ввода

Первая строка содержит числа nn (2≤n≤50002 \le n \le 5000) и mm (1≤m≤1051 \le m \le 10^5).

Вторая строка — nn чисел aia_i (0≤ai≤20 \le a_i \le 2): 11 — дата-центр первой компании, 22 — второй, 00 — ничего. Гарантируется, что есть хотя бы одна единица и хотя бы одна двойка.

Далее идут mm строк: два различных города и стоимость cc (1≤c≤1051 \le c \le 10^5). Между парой городов не более одного сегмента.

Формат вывода

Три числа xx, yy и dd — города и наименьшая стоимость. Если пара не единственная, выведите лексикографически наименьшую по (x,y)(x, y).

Если соединить невозможно, выведите −1-1.

Примеры

ввод
6 7
1 0 1 2 2 0
1 3 3
1 2 4
2 3 3
2 4 2
1 6 5
3 5 6
5 6 1
вывод
3 4 5
ввод
4 2
1 0 0 2
1 3 3
2 4 2
вывод
-1
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.