Туймаада 2021 каким способом можно решить данную задачу

B. Оркестр
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Однажды в симфоническом оркестре заболел дирижер. Без него музыкантам очень трудно играть в одном ритме. Чтобы добиться этого, некоторые музыканты смотрят на одного из своих коллег и стараются подстроиться под него. Другие музыканты закрывают глаза и играют на слух.

Если проследить, кто на кого смотрит, то можно построить цепочки из музыкантов, которые последовательно смотрят друг на друга. Иногда такие цепочки зацикливаются. Будем считать, что музыкант не может повторно входить в одну и ту же цепочку.

К сожалению, наш оркестр пока мало репетировал и часто начинает играть не в такт, поскольку в нем образуются отдельные группы музыкантов, которые смотрят только друг на друга и не смотрят на музыкантов из других групп.

Чтобы научиться играть лучше, музыканты просят вас написать программу для анализа текущей ситуации.

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

В первой строке задано натуральное число N — количество музыкантов в оркестре (N<4⋅10е4).

В каждой из последующих N строк задано по одному номеру коллеги, на которого смотрит текущий музыкант. Если записано число 0, то музыкант ни на кого не смотрит.

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

В первой строке выведите количество независимых друг от друга групп музыкантов K.

В следующих K строках выведите количество музыкантов в максимально длинной цепочке в каждой группе музыкантов. Эти числа нужно вывести в порядке возрастания.

Система оценки

Баллы за каждый тест начисляются независимо.

2 лайка

Просто построй граф и посчитай количество компонент связности

1 лайк