Advertisement
Guest User

Untitled

a guest
Feb 28th, 2020
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.61 KB | None | 0 0
  1. #include <iostream>
  2. #include <bits/stdc++.h>
  3. using namespace std ;
  4. int arr[100005];
  5. int dp[100005];
  6. int calcHight(int node){
  7.     if(dp[node]!=-1)return dp[node];
  8.     if(arr[node]==-1)return dp[node]=0;
  9.     return dp[node]=1+calcHight(arr[node]);
  10. }
  11. int main(){
  12.     int n ;
  13.     cin>>n ;
  14.     for(int i = 0 ; i < n ; i ++) {cin>>arr[i];}
  15.     memset(dp,-1, sizeof(dp));
  16.     for(int i = 0 ; i < n ; i ++){calcHight(i);}
  17.     int ans = INT_MIN;
  18.     for(int i = 0 ; i < n ; i ++){
  19.         ans=max(ans,dp[i]);
  20.         cout<<"node: "<<i <<"   Height "<<  dp[i]<<endl;
  21.     }
  22.     cout<<ans<<endl;
  23.     return 0;
  24. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement