一编译就会跳转到其他页面不知道哪里错了求助
#include <bits/stdc++.h>
using namespace std;
map<int,int>p;
int fa[100];
int find(int x)
{
if(fa[x]==x)
return 0;
else return 1+find(fa[x]);
}
int solve(int x,int cnt,int opt)
{
if(x==opt)
return 0;
else if(x==fa[x])
return cnt;
else return 1+find(fa[x],cnt,opt);
}
int main()
{
int t,n;
cin>>t;
for(int k=1;k<=t;k++)
{
int n,x;
cin>>n;
for(int i=1;i<=n;i++)
fa[i]=i;
for(int i=1;i<=n;i++)
{
cin>>x;
fa[i]=x;
}
int dis[100];
for(int i=1;i<=n;i++)
{
int cnt=find(i);
for(int j=1;j<=n;j++)
dis[j]=solve(j,cnt,i);
unsigned long long res=0;
for(int j=1;j<=n;j++)
res=res*133+dis[j];
if(p[res]!=0)
cout<<p[res]<<endl;
else{
p[res]=k;
cout<<k<<endl;
}
}
}
return 0;
}