// 題目

最長傳紙條環

Longest Note-Passing Cycle・apcs-31-01

  • APCS 高級
  • 函數圖與後繼圖
  • APCS 實作專題・Graph — Functional Graphs

時間限制 1 秒・記憶體 64 MB

到 Aki-Judge 送出

送出程式要先用 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 只是走進這個圈,本身不在圈上。

到 Aki-Judge 送出

送出程式要先用 Discord 帳號登入 Aki-Judge,並加入註解 Annotated 的 Discord 伺服器(免費)。看題目不用登入。

卡住了可以到 Discord 的 #程式問題 發問,小墨助教會先給提示,不會直接給答案。