1381 2022. 08. 30 11:14:18 szil Színes fa cpp14 Elfogadva 50/50 170ms 44684 KiB
#include <bits/stdc++.h>

using namespace std;

vector<vector<int>> g;
vector<int> s;
int ans = INT_MAX;


void dfs(int u, int p, int depth) {
    s[u] = depth;
    if (!g[u].size()) ans = min(ans, depth);
    for (int v : g[u]) {
        if (v != p)
            dfs(v, u, depth+1);
    }
}

int main() {
    int n;
    cin >> n;
    g.resize(n+1);
    s.resize(n+1);
    for (int i=2;i<=n;i++) {
        int a;
        cin >> a;
        g[a].push_back(i);
    }

    dfs(1, 1, 1);
    cout << ans << endl;
    for (int i=1;i<=n;i++) {
        cout << min(ans, s[i]) << " ";
    }
    cout << endl;
    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 3ms 1748 KiB
2 Elfogadva 0/0 7ms 2740 KiB
3 Elfogadva 1/1 2ms 2264 KiB
4 Elfogadva 4/4 2ms 2392 KiB
5 Elfogadva 5/5 126ms 44684 KiB
6 Elfogadva 2/2 135ms 21624 KiB
7 Elfogadva 3/3 135ms 21832 KiB
8 Elfogadva 2/2 130ms 21496 KiB
9 Elfogadva 2/2 123ms 20536 KiB
10 Elfogadva 2/2 125ms 21184 KiB
11 Elfogadva 2/2 129ms 23660 KiB
12 Elfogadva 2/2 135ms 25404 KiB
13 Elfogadva 2/2 151ms 26016 KiB
14 Elfogadva 2/2 138ms 26396 KiB
15 Elfogadva 2/2 143ms 26848 KiB
16 Elfogadva 2/2 140ms 26844 KiB
17 Elfogadva 2/2 140ms 26972 KiB
18 Elfogadva 2/2 140ms 27364 KiB
19 Elfogadva 2/2 142ms 27496 KiB
20 Elfogadva 2/2 141ms 27496 KiB
21 Elfogadva 2/2 142ms 27656 KiB
22 Elfogadva 2/2 144ms 28144 KiB
23 Elfogadva 2/2 149ms 32108 KiB
24 Elfogadva 3/3 170ms 36748 KiB