Submission
Status:
PPPPPPPPPP
Score: 100
User: Winzzwz
Problemset: เปลี่ยนมือ
Language: cpp
Time: 0.009 second
Submitted On: 2025-03-09 01:33:01
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int n,to[100100],mark[100100],mx;
int main() {
cin.tie(0)->sync_with_stdio(0);
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> to[i];
}
for (int i = 1; i <= n; i++) {
if (mark[i]) continue;
mark[i] = 1;
int cnt = 1, s = to[i];
while (s != i) {
mark[s] = 1;
s = to[s];
cnt++;
}
mx = max(mx,cnt);
}
cout << mx;
return 0;
}