Олимпиадный тренинг

Задача . E. Счастливый кактус


Задача

Темы: дп *3400

Вам дан кактус, это граф, где каждое ребро лежит не более чем на одном простом цикле.

Он дан в виде \(m\) ребер \(a_i, b_i\), вес \(i\)-го ребра равен \(i\).

Назовем путь в кактусе возрастающим если веса ребер на этом пути возрастают.

Назовем пару вершин \((u,v)\) счастливой если существует возрастающий путь, который начинается в \(u\) и кончается в \(v\).

Для каждой вершины \(u\) найдите количество других вершин \(v\), что пара \((u,v)\) счастливая.

Входные данные

В первой строке записаны два целых числа \(n,m\) (\(1 \leq n, m \leq 500\,000\)): количество вершин и ребер в данном кактусе.

Следующие \(m\) строк содержат описания ребер кактуса, \(i\)-я из них содержит два целых числа \(a_i, b_i\) (\(1 \leq a_i, b_i \leq n, a_i \neq b_i\)).

Гарантируется, что граф связен и в нем нет кратных ребер.

Выходные данные

Выведите \(n\) целых чисел, необходимые значения для вершин \(1,2,\ldots,n\).


Примеры
Входные данныеВыходные данные
1 3 3
1 2
2 3
3 1
2 2 2
2 5 4
1 2
2 3
3 4
4 5
4 4 3 2 1

time 3000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w644
Комментарий учителя