2370 2023. 01. 11 19:56:23 sztomi Színes fa cpp11 Elfogadva 50/50 180ms 38284 KiB
#include <bits/stdc++.h>

using namespace std;

const int INF = 1e9+7;

vector<vector<int>> graf;
vector<int> szinek;
int db;

int sekely(int akt){
    if(graf[akt].size() == 0){
        return 1;
    }

    int ki = INF;
    for(int kov : graf[akt]){
        ki = min(ki, sekely(kov) + 1);
    }
    return ki;
}

void szinez(int akt, int mod){
    mod %= db;
    szinek[akt] = mod+1;
    for(int kov : graf[akt]){
        szinez(kov, mod+1);
    }
}


int main()
{
    ios::sync_with_stdio(false);
    cin.tie(NULL);

    int n;
    cin >> n;
    graf.assign(n+1, vector<int>());
    szinek.assign(n+1, -1);
    int szulo;
    for(int i = 2; i <= n; i++){
        cin >> szulo;
        graf[szulo].push_back(i);
    }
    db = sekely(1);
    szinez(1, 0);

    cout << db << "\n";
    for(int i = 1; i <= n; i++){
        cout << szinek[i] << " ";
    }
    cout << "\n";
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 3ms 1696 KiB
2 Elfogadva 0/0 4ms 2684 KiB
3 Elfogadva 1/1 2ms 1940 KiB
4 Elfogadva 4/4 2ms 2196 KiB
5 Elfogadva 5/5 75ms 38284 KiB
6 Elfogadva 2/2 90ms 21184 KiB
7 Elfogadva 3/3 97ms 21428 KiB
8 Elfogadva 2/2 128ms 20996 KiB
9 Elfogadva 2/2 101ms 20044 KiB
10 Elfogadva 2/2 82ms 21048 KiB
11 Elfogadva 2/2 89ms 23464 KiB
12 Elfogadva 2/2 97ms 25196 KiB
13 Elfogadva 2/2 180ms 25740 KiB
14 Elfogadva 2/2 129ms 26080 KiB
15 Elfogadva 2/2 114ms 26560 KiB
16 Elfogadva 2/2 104ms 26600 KiB
17 Elfogadva 2/2 108ms 26724 KiB
18 Elfogadva 2/2 126ms 27208 KiB
19 Elfogadva 2/2 123ms 27496 KiB
20 Elfogadva 2/2 123ms 27448 KiB
21 Elfogadva 2/2 123ms 27732 KiB
22 Elfogadva 2/2 130ms 28152 KiB
23 Elfogadva 2/2 137ms 30732 KiB
24 Elfogadva 3/3 163ms 33864 KiB