blob: 38982ce73d4d1e4194adcf862c1d41862ecdd95b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#include <iostream>
#include <vector>
int f(const std::vector<std::vector<int>>& a, std::vector<int>& b, int i) {
for (auto x : a[i])
b[i] += f(a, b, x) + 1;
return b[i];
}
int main() {
int n, x;
std::cin >> n;
std::vector<std::vector<int>> a(n);
for (int i = 1; i < n; i++) {
std::cin >> x;
a[x-1].push_back(i);
}
std::vector<int> b(n, 0);
f(a, b, 0);
for (auto y : b)
std::cout << y << " ";
std::cout << std::endl;
}
|