216 2021. 02. 25 09:58:42 kicsiboglar Színes fa cpp11 Elfogadva 50/50 215ms 61348 KiB
#include <iostream>
#include "vector"

using namespace std;

long long n,i,j,db,mini;
struct adat
{
    int lep,apa,szin;
    vector<int> fiu;
};
vector <adat> x;
void melysegi (int csp,int lep)
{
    x[csp].lep=lep;
    for (auto e:x[csp].fiu) melysegi(e,lep+1);
}
void szinezes (int csp, int s)
{
    x[csp].szin=s;
    if (s!=1) --s;
    for (auto e:x[csp].fiu) szinezes(e,s);
}
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

    cin>>n;
    x.resize(n+1);
    for (i=2;i<=n;++i)
    {
        cin>>j;
        x[j].fiu.push_back(i);
        x[i].apa=j;
    }

    melysegi(1,1);

    int mini=999999;
    for (i=1;i<=n;++i)
    {
        if (x[i].fiu.empty())
        {
            if (x[i].lep<mini) mini=x[i].lep;
        }
    }
    cout<<mini<<"\n";
    szinezes(1,mini);
    for (i=1;i<=n;++i) cout<<x[i].szin<<" ";
    cout<<"\n";
    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 2ms 1820 KiB
2 Elfogadva 0/0 4ms 3216 KiB
3 Elfogadva 1/1 1ms 1968 KiB
4 Elfogadva 4/4 1ms 1972 KiB
5 Elfogadva 5/5 79ms 43796 KiB
6 Elfogadva 2/2 168ms 28060 KiB
7 Elfogadva 3/3 194ms 29336 KiB
8 Elfogadva 2/2 171ms 30056 KiB
9 Elfogadva 2/2 152ms 30292 KiB
10 Elfogadva 2/2 157ms 32168 KiB
11 Elfogadva 2/2 188ms 35900 KiB
12 Elfogadva 2/2 180ms 38740 KiB
13 Elfogadva 2/2 184ms 40500 KiB
14 Elfogadva 2/2 195ms 41928 KiB
15 Elfogadva 2/2 179ms 43600 KiB
16 Elfogadva 2/2 201ms 44960 KiB
17 Elfogadva 2/2 180ms 46280 KiB
18 Elfogadva 2/2 187ms 47556 KiB
19 Elfogadva 2/2 187ms 49116 KiB
20 Elfogadva 2/2 186ms 50424 KiB
21 Elfogadva 2/2 209ms 51800 KiB
22 Elfogadva 2/2 187ms 53480 KiB
23 Elfogadva 2/2 190ms 57052 KiB
24 Elfogadva 3/3 215ms 61348 KiB