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;
}