#include <bits/stdc++.h>
using namespace std;
const int N = 100005;
int p[N], n, a, num[N];
double ans[N];
vector<int> g[N];
void dfs(int p) {
  int l = g[p].size(), i;
  num[p] = 1;
  for (i = 0; i < l; i++) {
    dfs(g[p][i]);
    num[p] += num[g[p][i]];
  }
}
void work(int p, int fa) {
  int l = g[p].size(), i;
  ans[p] = ans[fa] + (num[fa] - num[p] - 1) / 2.0 + 1;
  for (i = 0; i < l; i++) work(g[p][i], p);
}
int main() {
  int i;
  cin >> n;
  for (i = 2; i <= n; i++) {
    cin >> a;
    g[a].push_back(i);
  }
  dfs(1);
  ans[0] = 0;
  num[0] = n + 1;
  work(1, 0);
  for (i = 1; i <= n; i++) printf("%.1lf ", ans[i]);
  return 0;
}
