Ctrl K

Клумбы в четыре цвета

Средняя
В парке n клумб с номерами от 1 до n. Некоторые пары клумб соединены дорожками: paths[i] = [x, y] — дорожка между клумбами x и y. Из каждой клумбы выходит не больше трёх дорожек. Каждую клумбу засаживают цветами одного из четырёх цветов: 1, 2, 3 или 4. Две клумбы, соединённые дорожкой, должны получить разные цвета. Верните массив colors длины n, где colors[i] — цвет клумбы i + 1. Подходящих раскрасок бывает много; верните лексикографически наименьшую: с как можно меньшим цветом у клумбы 1, при этом — у клумбы 2, и так далее.
Пример 1
n=4, paths=[[1, 2], [2, 3], [3, 1], [3, 4]] → [1, 2, 3, 1]

Клумба 1 — цвет 1. Клумба 2 соседствует с 1 — цвет 2. Клумба 3 соседствует с 1 и 2 — цвет 3. Клумба 4 соседствует только с 3 — ей подходит цвет 1.

Пример 2
n=3, paths=[] → [1, 1, 1]

Дорожек нет, все клумбы можно засадить цветом 1.

Пример 3
n=4, paths=[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]] → [1, 2, 3, 4]

Каждая клумба соседствует со всеми остальными, поэтому нужны все четыре цвета.

Ограничения
  • 1 ≤ n ≤ 10⁴
  • 0 ≤ len(paths) ≤ 2 · 10⁴
  • 1 ≤ x, y ≤ n, x ≠ y
  • Из каждой клумбы выходит не больше трёх дорожек
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПорядок сборки модулей СредняяОчередь на курсы СредняяСкладываются ли связи в дерево СредняяЛучшие корни дерева СредняяСколько изолированных групп в сети Средняя
загружаем Python…
Вход
n=4, paths=[[1, 2], [2, 3], [3, 1], [3, 4]]
Ожидается
[1, 2, 3, 1]

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 32 теста на сервере, включая скрытые.