#include <chrono>
#include <iostream>
#include <map>
#include <set>
#include <unordered_map>
#include <vector>
using namespace std;
typedef long long ll;
vector<vector<int>> gr;
vector<ll> res;
ll dfs(int v) {
ll size = 1;
ll curres = 0;
for (auto u: gr[v]) {
size += dfs(u);
curres += res[u];
}
res[v] = curres + size;
return size;
}
int main() {
int n;
cin >> n;
gr.resize(n);
res.resize(n);
for (int i = 1; i < n; ++i) {
int cur;
cin >> cur;
gr[cur - 1].push_back(i);
}
dfs(0);
for (const auto& item: res){
cout << item << ' ';
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |