제출 #1168742

#제출 시각아이디문제언어결과실행 시간메모리
1168742apelpisiaBirokracija (COCI18_birokracija)C++20
100 / 100
85 ms28740 KiB
#include <bits/stdc++.h>
#define int long long
#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];
}

signed 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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...