func_code_string: #include <bits/stdc++.h>   using namespace std;   int N;   int P[101010];   int V[101010];   vector<int> E[101010];   double T[101010];   void dfs(int cur, double tim) {     tim += 1;     T[cur] = tim;     for (auto& r : E[cur]) {       double el = (V[cur] - 1 - V[r]) * 0.5;       dfs(r, tim + el);     }   }   void solve() {     int i, j, k, l, r, x, y;     string s;     cin >> N;     for (i = 1; i < N; i++) cin >> P[i], P[i]--, E[P[i]].push_back(i);     for (i = N - 1; i >= 0; i--) {       V[i]++;       if (i) V[P[i]] += V[i];     }     dfs(0, 0);     for (i = 0; i < (N); i++)       (void)printf( %lf%c , T[i], (i == N - 1) ?   n  :    );   }   int main(int argc, char** argv) {     string s;     int i;     if (argc == 1) ios::sync_with_stdio(false), cin.tie(0);     for (i = 0; i < (argc - 1); i++) s += argv[i + 1], s +=   n ;     for (i = 0; i < (s.size()); i++) ungetc(s[s.size() - 1 - i], stdin);     solve();     return 0;   }   