1142021-01-13 08:31:08kidesoSzínes facpp11Elfogadva 50/50209ms39204 KiB
#include <iostream>
#include <vector>

using namespace std;

//ifstream cin("szin.in");
//ofstream cout("szin.out");

struct adat
{
    int apa, tav = 0;
    vector <int> el;
};

vector <adat> x;
int N, i, a, k;

void mely(int csp)
{
    for(auto e:x[csp].el)
        if (x[e].tav == 0)
        {
            x[e].tav = x[csp].tav + 1;
            mely(e);
        }
}

int main()
{
    cin >> N;

    k = N + 1;
    x.resize(N + 1);
    x[1].apa = -1;
    x[1].tav = 1;
    for (i = 2; i <= N; ++i)
    {
        cin >> a;
        x[a].el.push_back(i);
        x[i].apa = a;
    }

    mely(1);

    for (i = 1; i <= N; ++i)
        if (x[i].el.empty() && x[i].tav < k) k = x[i].tav;

    cout << k << '\n';

    for (i = 1; i <= N; ++i)
        if (x[i].tav <= k) cout << x[i].tav << ' ';
        else cout << 1 << ' ';
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms1804 KiB
2Elfogadva0/06ms2680 KiB
3Elfogadva1/11ms1892 KiB
4Elfogadva4/41ms1784 KiB
5Elfogadva5/5111ms39204 KiB
6Elfogadva2/2163ms22244 KiB
7Elfogadva3/3174ms22284 KiB
8Elfogadva2/2180ms21752 KiB
9Elfogadva2/2153ms20728 KiB
10Elfogadva2/2173ms21320 KiB
11Elfogadva2/2173ms23816 KiB
12Elfogadva2/2180ms25336 KiB
13Elfogadva2/2178ms25880 KiB
14Elfogadva2/2175ms26020 KiB
15Elfogadva2/2175ms26436 KiB
16Elfogadva2/2179ms26480 KiB
17Elfogadva2/2184ms26588 KiB
18Elfogadva2/2180ms26612 KiB
19Elfogadva2/2175ms26636 KiB
20Elfogadva2/2179ms26956 KiB
21Elfogadva2/2185ms27048 KiB
22Elfogadva2/2174ms27484 KiB
23Elfogadva2/2209ms29792 KiB
24Elfogadva3/3187ms32956 KiB