Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Evirir#include <bits/stdc++.h>
- using namespace std;
- bool visited[2222];
- vector<int> adj[2222];
- int maxlevel=1;
- void DFS(int now,int level){
- if(visited[now]) return;
- else visited[now]=true;
- maxlevel=max(maxlevel,level);
- for(int i=0;i<adj[now].size();i++){
- int x=adj[now][i];
- DFS(x,level+1);
- }
- }
- int main()
- {
- int V;
- vector<int> boss; //people who don't have a manager
- cin>>V;
- for(int i=0;i<V;i++){
- int j;
- cin>>j;
- if(j==-1)
- boss.push_back(i);
- else{
- adj[j-1].push_back(i);
- }
- }
- for(int i=0;i<boss.size();i++)
- DFS(boss[i],1);
- cout<<maxlevel;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement