Codeforces Round 993 (Div. 4) |
---|
Закончено |
Это сложная версия задачи. Ключевое отличие между двумя версиями выделено жирным шрифтом.
Группа из $$$n$$$ пауков собралась, чтобы обменяться плюшевыми игрушками. Изначально у каждого паука есть $$$1$$$ плюшевая игрушка. Каждый год, если паук $$$i$$$ имеет хотя бы одну плюшевую игрушку, он отдаст ровно одну плюшевую игрушку пауку $$$r_i$$$. В противном случае он ничего не сделает. Обратите внимание, что все передачи плюшевых игрушек происходят одновременно. В этой версии каждому пауку разрешено иметь более 1 плюшевой игрушки в любой момент времени.
Процесс считается стабильным в текущем году, если у каждого паука такое же количество плюшевых игрушек (до обмена в текущем году), как и в предыдущем году (до обмена в предыдущем году). Обратите внимание, что год $$$1$$$ никогда не может быть стабильным.
Найдите первый год, в котором процесс становится стабильным.
Первая строка содержит целое число $$$t$$$ ($$$1 \leq t \leq 10^4$$$) — количество наборов входных данных.
Первая строка каждого набора входных данных содержит целое число $$$n$$$ ($$$2 \leq n \leq 2 \cdot 10^5$$$) — количество пауков.
Следующая строка содержит $$$n$$$ целых чисел $$$r_1, r_2, \ldots, r_n$$$ ($$$1 \leq r_i \leq n, r_i \neq i$$$) — получатель плюшевой игрушки от каждого паука.
Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превышает $$$2 \cdot 10^5$$$.
Для каждого набора входных данных выведите целое число в новой строке, первый год, в котором процесс становится стабильным.
522 152 3 4 5 152 1 4 2 354 1 1 5 4104 3 9 1 6 7 9 10 10 3
2 2 5 5 5
Для второго набора входных данных:
Для третьего набора входных данных:
Название |
---|