crowulll

Untitled

Aug 23rd, 2020
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.04 KB | None | 0 0
  1. #define F first
  2. #define S second
  3. #define PB push_back
  4. #define PF push_front
  5. #define pF pop_front
  6. #define pB pop_back
  7. #include <bits/stdc++.h>
  8. using namespace std;
  9. typedef long long ll;
  10. typedef vector<int> vi;
  11. typedef vector<char> vc;
  12. typedef pair<int, int> pi;
  13. typedef deque<int> di;
  14. typedef deque<char> dc;
  15. typedef vector<string> vs;
  16. vector<bool> used(2001, false); int best = 1; int depth = 1;
  17. vector<vector <int> > l(2001, vector<int> (0));
  18. int dfs(int v){
  19.     used[v] = true;
  20.     for (auto u : l[v]){
  21.         if (!used[u]){
  22.             depth++;
  23.             dfs(u);
  24.         }
  25.     }
  26.     best = max(best, depth);
  27.     depth--;
  28. }
  29. int n;
  30. int main(){
  31.     ios::sync_with_stdio(0);
  32.     cin.tie(0);
  33.     cout.tie(0);
  34.     cin >> n; int x;
  35.     for (int i = 1; i < n + 1; ++i){
  36.         cin >> x;
  37.         if (x != -1){
  38.             l[x].PB(i);
  39.         }
  40.     }
  41.     for (int i = 1; i < n + 1; ++i){
  42.         dfs(i);
  43.         for (int j = 1; j < n + 1; ++j)
  44.             used[j] = false;
  45.         depth = 1;
  46.     }
  47.     cout << best;
  48. }
  49.  
Advertisement
Add Comment
Please, Sign In to add comment