233082026-01-18 19:57:39abcdSzínes facpp17Accepted 50/50159ms13364 KiB
#include <bits/stdc++.h>
using namespace std;
using pii=pair<int,int>;

int main(){
    int n;cin>>n;
    vector<vector<int>> adj(n+1);
    for(int i=2;i<=n;i++){
        int a;cin>>a;
        adj[a].push_back(i);
    }
    queue<pii> q;
    q.push({1,1});
    vector<int> c(n+1);
    int ans=0;
    while(!q.empty()){
        auto [v,col]=q.front();q.pop();
        if(ans){
            c[v]=ans;
        }
        else {
            c[v]=col;
            if(adj[v].size()==0)ans=col;
        }
        for(int u:adj[v])q.push({u,col+1});
    }
    cout<<ans<<'\n';
    for(int i=1;i<=n;i++)cout<<c[i]<<' ';cout<<'\n';
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms316 KiB
2Accepted0/06ms820 KiB
3Accepted1/11ms316 KiB
4Accepted4/41ms316 KiB
5Accepted5/5112ms13364 KiB
6Accepted2/2128ms10156 KiB
7Accepted3/3128ms10148 KiB
8Accepted2/2133ms9868 KiB
9Accepted2/2120ms9524 KiB
10Accepted2/2141ms10308 KiB
11Accepted2/2143ms11572 KiB
12Accepted2/2133ms12084 KiB
13Accepted2/2128ms12340 KiB
14Accepted2/2144ms12340 KiB
15Accepted2/2144ms12596 KiB
16Accepted2/2133ms12596 KiB
17Accepted2/2143ms12852 KiB
18Accepted2/2145ms12744 KiB
19Accepted2/2143ms12848 KiB
20Accepted2/2129ms13108 KiB
21Accepted2/2128ms13120 KiB
22Accepted2/2129ms13108 KiB
23Accepted2/2153ms13108 KiB
24Accepted3/3159ms13172 KiB