13792022-08-30 10:49:20HVMarciSzínes facpp14Elfogadva 50/50171ms42908 KiB
#include <bits/stdc++.h>

using namespace std;

#define int long long


int n, minmelyseg = LLONG_MAX/2;
vector<int> parent, melyseg;
vector<vector<int> > g;

void dfs(int v, int s) {
    melyseg[v] = s;
    if (g[v].size() == 0) {
        if (s < minmelyseg) {
            minmelyseg = s;
        }
    }
    for (int u : g[v]) {
        dfs(u, s + 1);
    }
}

main() {
    cin >> n;
    parent.resize(n + 1, 0);
    g.resize(n + 1);
    melyseg.resize(n + 1);

    for (int i = 2; i <= n; i++) {
        cin >> parent[i];
        g[parent[i]].push_back(i);
    }

    dfs(1, 1);

    cout << minmelyseg << endl;

    for (int i = 1; i <= n; i++) {
        cout << (melyseg[i] <= minmelyseg ? melyseg[i] : 1) << " ";
    }
    cout << endl;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/03ms1752 KiB
2Elfogadva0/08ms3132 KiB
3Elfogadva1/12ms1988 KiB
4Elfogadva4/42ms2116 KiB
5Elfogadva5/5123ms42908 KiB
6Elfogadva2/2135ms26616 KiB
7Elfogadva3/3146ms26820 KiB
8Elfogadva2/2143ms26376 KiB
9Elfogadva2/2136ms26084 KiB
10Elfogadva2/2140ms26544 KiB
11Elfogadva2/2137ms28492 KiB
12Elfogadva2/2151ms30140 KiB
13Elfogadva2/2152ms30608 KiB
14Elfogadva2/2142ms30880 KiB
15Elfogadva2/2160ms31572 KiB
16Elfogadva2/2156ms31652 KiB
17Elfogadva2/2157ms31652 KiB
18Elfogadva2/2157ms31780 KiB
19Elfogadva2/2145ms31680 KiB
20Elfogadva2/2143ms32204 KiB
21Elfogadva2/2143ms32280 KiB
22Elfogadva2/2145ms32928 KiB
23Elfogadva2/2157ms35296 KiB
24Elfogadva3/3171ms38572 KiB