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