| Codeforces Round 1105 (Div. 1) |
|---|
| Закончено |
Вам дан неориентированный граф, состоящий из $$$n$$$ вершин и $$$m$$$ рёбер. С $$$i$$$-й вершиной связано значение $$$\mathrm{val}_i$$$. $$$j$$$-е ребро соединяет вершины $$$u_j$$$ и $$$v_j$$$ и имеет два свойства: пропускную способность $$$w_j$$$ и нижний порог $$$\mathrm{low}_j$$$. Гарантируется, что $$$w_j \ge \mathrm{low}_j$$$ для всех рёбер.
Вы хотите начать обход из вершины $$$s$$$. Перед началом обхода вы должны выбрать произвольное неотрицательное целое число $$$h_{start}$$$ в качестве начального параметра состояния.
Если вы находитесь в вершине $$$u$$$ с параметром состояния $$$h$$$, вы можете пройти по ребру $$$j$$$, соединяющему $$$u$$$ и $$$v$$$, тогда и только тогда, когда $$$w_j \ge h$$$. При прохождении этого ребра и прибытии в вершину $$$v$$$ параметр состояния $$$h$$$ обновляется до $$$\max(h, \mathrm{low}_j)$$$.
Пусть обход заканчивается в некоторой вершине $$$t$$$. Вы должны пройти хотя бы одно ребро. Счёт такого обхода определяется как $$$\mathrm{val}_t + h_{start}$$$. Обратите внимание, что нас интересует сумма значения конечной вершины и начального параметра состояния, а не конечного параметра состояния.
Для каждой начальной вершины $$$s$$$ от $$$1$$$ до $$$n$$$ вычислите максимально достижимый счёт. Если из некоторой вершины $$$s$$$ невозможно пройти ни по одному ребру, выведите $$$-1$$$.
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора входных данных содержит два целых числа $$$n$$$ и $$$m$$$ ($$$1 \le n \le 5\cdot 10^5, 0 \le m \le 5\cdot 10^5$$$) — количество вершин и количество рёбер.
Вторая строка каждого набора входных данных содержит $$$n$$$ целых чисел $$$\mathrm{val}_1, \mathrm{val}_2, \ldots, \mathrm{val}_n$$$ ($$$1 \le \mathrm{val}_i \le 10^9$$$) — значения вершин.
Следующие $$$m$$$ строк описывают рёбра. $$$j$$$-я строка содержит четыре целых числа $$$u_j, v_j, w_j, \mathrm{low}_j$$$ ($$$1 \le u_j, v_j \le n, u_j \neq v_j$$$; $$$1 \le \mathrm{low}_j \le w_j \le 10^9$$$) — концы и свойства $$$j$$$-го ребра.
Граф не обязан быть связным и может содержать кратные рёбра.
Гарантируется, что сумма $$$n$$$ и сумма $$$m$$$ по всем наборам входных данных не превосходят $$$5\cdot 10^5$$$.
Для каждого набора входных данных выведите $$$n$$$ целых чисел через пробел. $$$i$$$-е целое число должно быть равно максимальному счёту, достижимому из вершины $$$i$$$, или $$$-1$$$, если ни одно ребро не может быть пройдено.
93 210 20 51 2 5 22 3 4 32 1100 101 2 10 52 050 501 01145144 11 2 3 43 4 2 13 21 4 11 3 4 11 2 2 13 210 3 22 3 4 42 1 3 23 25 2 23 2 4 41 3 5 55 9857147200 381798978 633421584 956726892 3158999002 1 883474754 7958315712 4 657281748 3754667251 3 666641114 4442189182 3 901861650 7908953133 2 613790652 968760042 5 852725279 2166010903 4 500240642 1936338922 5 210434355 1306461563 2 457018372 279005896
25 25 24110 110-1 -1-1-1 -1 6 66 6 613 13 710 9 101740621954 1740621954 1740621954 1614008640 1709872479
В первом наборе входных данных оптимальные значения $$$h_{start}$$$ и пути для каждой начальной вершины следующие:
В третьем наборе входных данных, так как ни одно ребро не инцидентно ни одной вершине, ответ равен $$$-1$$$ для обеих вершин.
| Название |
|---|


