#include <bits/stdc++.h>
#define pb push_back
#define f first
#define s second
using namespace std;
typedef pair<int, int> ii;
const int nx = 2e5+5;
int n, dp[nx], ast[nx];
vector<int> adj[nx];
void dfs(int now){
ast[now] = 1;
for(auto tid : adj[now]){
dfs(tid);
dp[now]+=dp[tid];
ast[now]+=ast[tid];
}
dp[now]+=ast[now];
}
int main(){
cin >> n;
for(int i=2; i<=n; i++){
int ip; cin >> ip;
adj[ip].pb(i);
}
dfs(1);
for(int i=1; i<=n; i++) cout << dp[i] << ' ';
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... |