Вам дан ориентированный граф из $$$n$$$ вершин и $$$m$$$ ориентированных ребер. Гарантируется, что в нем нет ни петель, ни кратных ребер.
Определим $$$k$$$-покраску орграфа следующим образом: мы красим каждое ребро в один из $$$k$$$ цветов. $$$k$$$-покраска является хорошей тогда и только тогда, когда в графе не существует цикла, состоящего из ребер одного цвета.
Найдите хорошую $$$k$$$-покраску с минимально возможным значением $$$k$$$.
В первой строке заданы два целых числа $$$n$$$ и $$$m$$$ ($$$2 \le n \le 5000$$$, $$$1 \le m \le 5000$$$) — количество вершин и ребер, соответственно.
Следующие $$$m$$$ строк содержат описание ребер — по одному в строке. Каждое ребро задается парой целых чисел $$$u$$$ и $$$v$$$ ($$$1 \le u, v \le n$$$, $$$u \ne v$$$) — они обозначают ребро из вершины $$$u$$$ в вершину $$$v$$$.
Гарантируется, что каждая упорядоченная пара $$$(u, v)$$$ входит в список ребер не более одного раза.
В первой строке выведите одно целое число $$$k$$$ — количество цветов в $$$k$$$-покраске графа.
Во второй строке выведите $$$m$$$ целых чисел $$$c_1, c_2, \dots, c_m$$$ ($$$1 \le c_i \le k$$$), где $$$c_i$$$ — цвет $$$i$$$-го ребра (ребра нумеруются в том порядке, в котором заданы во входных данных).
Если ответов несколько, выведите любой (но все равно надо минимизировать $$$k$$$).
4 5 1 2 1 3 3 4 2 4 1 4
1 1 1 1 1 1
3 3 1 2 2 3 3 1
2 1 1 2
Название |
---|