#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
#define inf 0x3f3f3f3f
const int N=1e5+5;
int n;
int a[N],dis[N];
vector<int>e[N];
void dfs(int u,int deep){
dis[u]=deep;
for(auto it:e[u]){
dfs(it,deep+1);
}
}
void solve(){
cin>>n;
int s;
for(int i=1;i<=n;i++){
cin>>a[i];
if(a[i]!=-1) e[a[i]].push_back(i);
else s=i;
}
dfs(s,1);
int res=*max_element(dis+1,dis+n+1);
cout<<res<<endl;
int f=1;
for(int i=1;i<=n;i++){
if(dis[i]==res){
if(f) f=0;
else cout<<" ";
cout<<i;
}
}
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int t=1;
// cin>>t;
while(t--) solve();
return 0;
}
PTA小字辈
最新推荐文章于 2024-07-24 23:27:36 发布