13812022-08-30 11:14:18szilSzínes facpp14Elfogadva 50/50170ms44684 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ÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/03ms1748 KiB
2Elfogadva0/07ms2740 KiB
3Elfogadva1/12ms2264 KiB
4Elfogadva4/42ms2392 KiB
5Elfogadva5/5126ms44684 KiB
6Elfogadva2/2135ms21624 KiB
7Elfogadva3/3135ms21832 KiB
8Elfogadva2/2130ms21496 KiB
9Elfogadva2/2123ms20536 KiB
10Elfogadva2/2125ms21184 KiB
11Elfogadva2/2129ms23660 KiB
12Elfogadva2/2135ms25404 KiB
13Elfogadva2/2151ms26016 KiB
14Elfogadva2/2138ms26396 KiB
15Elfogadva2/2143ms26848 KiB
16Elfogadva2/2140ms26844 KiB
17Elfogadva2/2140ms26972 KiB
18Elfogadva2/2140ms27364 KiB
19Elfogadva2/2142ms27496 KiB
20Elfogadva2/2141ms27496 KiB
21Elfogadva2/2142ms27656 KiB
22Elfogadva2/2144ms28144 KiB
23Elfogadva2/2149ms32108 KiB
24Elfogadva3/3170ms36748 KiB