Submission #1160823

#TimeUsernameProblemLanguageResultExecution timeMemory
1160823johar444555Birokracija (COCI18_birokracija)C++20
100 / 100
88 ms30544 KiB
#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 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...