记录编号 544325 评测结果 AAAAAAAAAA
题目名称 [NOIP 2015]信息传递 最终得分 100
用户昵称 GravatarShallowDream雨梨 是否通过 通过
代码语言 C++ 运行时间 0.353 s
提交时间 2019-10-17 10:45:26 内存使用 15.95 MiB
显示代码纯文本
 #include<bits/stdc++.h>
 #define qwq cout<<"qwq";
using namespace std;
const int maxn=200005;
int ru[maxn],vis[maxn],to[maxn];
void del(int x){
	vis[x]=1;
	ru[to[x]]--;
	if(vis[to[x]]==0&&ru[to[x]]==0)
	del(to[x]);}
int dfs(int x,int start,int l){
	if(x==start&&l!=0)
	return l;
	if(vis[to[x]]==0)
	vis[to[x]]=1,
	dfs(to[x],start,l+1);
}
int main(){
    freopen("2015message.in","r",stdin);
    freopen("2015message.out","w",stdout);
	int n,ans=99999999;
	cin>>n;
	for(int i=1;i<=n;i++)
	cin>>to[i],ru[to[i]]++;
	for(int i=1;i<=n;i++){
	if(vis[i]==0&&ru[i]==0){
	
	del(i);}}
	for(int i=1;i<=n;i++)
	if(vis[i]==0)ans=min(dfs(i,i,0),ans);
	cout<<ans;
    	return 0;
    }