func_code_string: #include <bits/stdc++.h>   using namespace std;   const int MAXN = 1100000;   int p[MAXN], f[MAXN], g[MAXN];   int main() {     int n;     scanf( %d , &n);     f[1] = 1, g[1] = 0;     for (int i = 2; i <= n + 1; i++) {       scanf( %d , &p[i]);       f[i] = 1, g[i] = 0;       for (int v = i; v != 1; v = p[v]) {         int tmp = f[p[v]];         if (f[v] > g[p[v]])           f[p[v]] = g[p[v]] = f[v];         else           f[p[v]] = max(f[p[v]], f[v] + 1);         if (f[p[v]] == tmp) break;       }       printf( %d  , g[1]);     }     return 0;   }   