#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e6+10;
int a[N],p[N],cnt[N],sum,n;
int find(int x){
if(p[x]!=x) p[x]=find(p[x]);
return p[x];
}
signed main()
{
cin>>n;
for(int i=1;i<=n;i++){
p[i]=i;
cnt[i]=1;
}
for(int i=1;i<=n;i++){
int x;
cin>>x;
int a=find(i),b=find(x);
if(a==b) continue;
p[b]=a;
cnt[a]+=cnt[b];
}
for(int i=1;i<=n;i++){
int a=find(i),b=find(i+1);
if(a==b) sum=max(sum,cnt[a]);
else{
sum=max(sum,cnt[a]+cnt[b]);
}
}
cout<<sum<<endl;
return 0;
}
1 回复
0 转发
0 喜欢
6 阅读



