252952026-02-19 02:11:21999Színes facpp17Accepted 50/50196ms17372 KiB
// Source: https://usaco.guide/general/io

#include <bits/stdc++.h>
using namespace std;
#define int long long

const int MOD=20210108;

signed main() {
    int n;cin>>n;
    vector<int> p(n),dp(n,-1),vane(n);
    vector<vector<int>> v(n);
    dp[0]=1;
    for(int i = 1;i<n;i++){
        cin>>p[i];
        p[i]--;
        vane[p[i]]=1;
        v[p[i]].push_back(i);
    }
    queue<int> q;
    q.push(0);
    while(!q.empty()){
        int a=q.front();
        q.pop();
        for(int u : v[a]){
            if(dp[u]==-1){
                dp[u]=dp[a]+1;
                q.push(u);
            }
        }
    }
    int k=n;
    for(int i = 0;i<n;i++){
        if(!vane[i]){
            k=min(k,dp[i]);
        }
    }
    cout<<k<<endl;
    for(int i : dp)cout<<i%k+1<<' ';
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms500 KiB
2Accepted0/07ms1092 KiB
3Accepted1/11ms316 KiB
4Accepted4/41ms316 KiB
5Accepted5/5116ms17372 KiB
6Accepted2/2177ms14388 KiB
7Accepted3/3141ms14388 KiB
8Accepted2/2175ms14104 KiB
9Accepted2/2165ms14132 KiB
10Accepted2/2171ms14384 KiB
11Accepted2/2152ms15412 KiB
12Accepted2/2168ms16252 KiB
13Accepted2/2187ms16180 KiB
14Accepted2/2196ms16436 KiB
15Accepted2/2164ms16436 KiB
16Accepted2/2184ms16692 KiB
17Accepted2/2190ms16692 KiB
18Accepted2/2196ms16692 KiB
19Accepted2/2162ms16692 KiB
20Accepted2/2184ms16944 KiB
21Accepted2/2163ms16948 KiB
22Accepted2/2165ms16948 KiB
23Accepted2/2196ms17204 KiB
24Accepted3/3185ms17204 KiB