#include<iostream>
#include<vector>
#include<cstdio>
#include<set>
using namespace std;
const int N = 2E5 + 5;
int n, a[N];
set<int> ms[N];

void initInput(void)
{
    scanf("%d", &n);
    for(int i = 1; i <= n; ++i)
    { 
        scanf("%d", &(a[i]));
        ms[a[i]].insert(i);
    }
}

int main(void)
{
    initInput();
    int ans = 1;
    int flag = 0;
    while(1)
    {
        ans++;
        for(int i = 1; i <= n; ++i)
        {
            for(auto j:ms[i])
            {
                if(j == a[i])
                {
                    flag = 1;
                    break;
                }
                if(ms[a[i]].count(j)) continue;
                ms[a[i]].insert(j);
            }
            if(ms[a[i]].count(i)) continue;
            ms[a[i]].insert(i);
                
            if(flag) break;
        }
        if(flag) break;
    }
    printf("%d", ans);
    return 0;
}

0 条评论

目前还没有评论...