Advertisement
Evirir

Untitled

Dec 19th, 2018
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.61 KB | None | 0 0
  1. Evirir#include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. bool visited[2222];
  5. vector<int> adj[2222];
  6. int maxlevel=1;
  7.  
  8. void DFS(int now,int level){
  9.     if(visited[now])    return;
  10.     else visited[now]=true;
  11.     maxlevel=max(maxlevel,level);
  12.     for(int i=0;i<adj[now].size();i++){
  13.         int x=adj[now][i];
  14.         DFS(x,level+1);
  15.     }
  16. }
  17.  
  18. int main()
  19. {
  20.     int V;
  21.     vector<int> boss;   //people who don't have a manager
  22.     cin>>V;
  23.    
  24.     for(int i=0;i<V;i++){
  25.         int j;
  26.         cin>>j;
  27.         if(j==-1)
  28.             boss.push_back(i);
  29.         else{
  30.             adj[j-1].push_back(i);
  31.         }
  32.     }
  33.    
  34.     for(int i=0;i<boss.size();i++)
  35.         DFS(boss[i],1);
  36.     cout<<maxlevel;
  37.     return 0;
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement