EduBrick

K. Дерево кратчайших путей

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

Дан неориентированный взвешенный граф. Для каждой вершины выведите её родителя в дереве кратчайших путей из вершины 1 — то есть вершину, из которой в неё выгоднее всего прийти.

Родителем вершины vv считается наименьшая вершина uu, для которой

dist[u]+w(u,v)=dist[v].\mathrm{dist}[u] + w(u, v) = \mathrm{dist}[v].

У вершины 1 и у недостижимых вершин родителя нет — для них выведите 00.

Формат ввода

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

Далее идут mm строк с рёбрами: концы и вес ww (1≤w≤1041 \le w \le 10^4). Возможны кратные рёбра; петель нет.

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

Одна строка из nn чисел — родители вершин.

Примеры

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