#include <bits/stdc++.h>
#include <limits.h>
#define SACRIFICING using
#define THE namespace
#define QUEEN std
SACRIFICING THE QUEEN;
typedef long long ll;
const ll inf = INT_MAX*4/5*9;
ll n,a[100009],vis[100009];
vector<vector<int> > sets;
queue<int>q;
int rounds(){
q.push(1);
int minn=inf;
vis[1]=1;
while(!q.empty()){
int x=q.front();
q.pop();
for(auto it=sets[x].begin();it!=sets[x].end();it++){
if(vis[x]-vis[*it]+1<minn){
minn=vis[x]-vis[*it]+1;
}
q.push(*it);
vis[*it]=vis[x]+1;
}
}
return minn;
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
sets[i].push_back(a[i]);
}
cout<<rounds();
return 0;
}
认为是关系的并查集查最小环长度,但RE