Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: chawinkn
Problemset: เปลี่ยนมือ
Language: cpp
Time: 0.007 second
Submitted On: 2025-05-23 14:14:03
#include <bits/stdc++.h>
using namespace std;
int g[100009];
bool visited[100009];
int dfs(int u) {
if (visited[u])
return 0;
visited[u] = true;
return dfs(g[u])+1;
}
int main() {
ios_base::sync_with_stdio(false); cin.tie(NULL);
int n;
cin >> n;
for (int i = 1; i <= n; i++) {
int a;
cin >> a;
g[i] = a;
}
int ans=0;
for (int i = 1; i <= n; i++)
ans = max(ans, dfs(i));
cout << ans;
return 0;
}