最長傳紙條環
Longest Note-Passing Cycle・apcs-31-01
- APCS 高級
- 函數圖與後繼圖
- APCS 實作專題・Graph — Functional Graphs
時間限制 1 秒・記憶體 64 MB
送出程式要先用 Discord 帳號登入 Aki-Judge,並加入註解 Annotated 的 Discord 伺服器(免費)。看題目不用登入。
題目敘述
班上有 n 位同學,座號 1 到 n。每位同學都有固定的傳紙條對象:座號 i 的同學收到紙條後,一定會把它傳給座號 fi 的同學(可能傳給自己)。紙條一路傳下去,有些同學會形成「傳回原點」的圈子,也就是從某位同學出發,沿著傳遞方向走若干步後剛好回到他自己,而且圈內每位同學只出現一次。
請輸出所有送遞圈中最長的那一個的長度(圈內的人數);若不存在這樣的圈,輸出 0。
輸入格式
- 第一行:整數 n。
- 第二行:n 個整數 f1, f2, …, fn。
輸出格式
一個整數,最長圈的長度。
限制
- 1 ≤ n ≤ 200
- 1 ≤ fi ≤ n
範例
範例 1
輸入
5
2 3 2 5 4輸出
2範例 2
輸入
1
1輸出
1說明
範例 1 中,編號 2 與 3 互相指向,形成長度 2 的圈;另外 4 與 5 也互相指向,同樣是長度 2。編號 1 只是走進這個圈,本身不在圈上。
送出程式要先用 Discord 帳號登入 Aki-Judge,並加入註解 Annotated 的 Discord 伺服器(免費)。看題目不用登入。
卡住了可以到 Discord 的 #程式問題 發問,小墨助教會先給提示,不會直接給答案。