G. Конденсация графа
1000 мс · 256 МБ · всё или ничего
Найдите компоненты сильной связности ориентированного графа и пронумеруйте их так, чтобы каждое ребро вело из компоненты с меньшим номером в компоненту с большим или равным.
Формат ввода
В первой строке - числа и (, ).
В следующих строках - рёбра графа. Возможны петли и кратные рёбра.
Формат вывода
В первой строке выведите число компонент .
Во второй строке - чисел: номер компоненты каждой вершины. Компоненты нумеруются в порядке лексикографически наименьшей топологической сортировки конденсации; компоненты сравниваются по наименьшей входящей в них вершине.
Примеры
ввод
3 3 1 2 2 3 3 1
вывод
1 1 1 1
ввод
4 2 1 2 3 4
вывод
4 1 2 3 4
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.