66262023-12-13 21:05:23mmatedSzínes facpp17Hibás válasz 0/50101ms27404 KiB
#include <bits/stdc++.h>
using namespace std;
#define f(i,k,n) for(int i=k; i<n; i++)
#define ll long long
const int inf = INT_MAX;

void solve()
{
    int n;
    cin>>n;
    vector<vector<int>> g(n);
    int x;
    f(i,1,n)
    {
        cin>>x;
        g[i].push_back(x-1);
        g[x-1].push_back(i);
    }
    int mini=inf;
    int pozi=-1;
    set<int> s;
    f(i,0,n)
    {
        if(mini>g[i].size())
        {
            mini=g[i].size();
            pozi=i;
            s.insert(i);
        }
    }
    mini++;
    cout<<mini<<"\n";
    vector<int> v(n,1);
    for(auto x:g[pozi])
    {
        v[x]=mini;
        mini--;
    }
    f(i,0,n)    cout<<v[i]<<" ";
    cout<<"\n";
}

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    int t=1;
    //cin>>t;
    while(t--)  solve();
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/50
1Elfogadva0/03ms1832 KiB
2Hibás válasz0/06ms3256 KiB
3Hibás válasz0/13ms2288 KiB
4Hibás válasz0/43ms2504 KiB
5Hibás válasz0/572ms26096 KiB
6Hibás válasz0/289ms26348 KiB
7Hibás válasz0/387ms26556 KiB
8Hibás válasz0/290ms26596 KiB
9Hibás válasz0/286ms26920 KiB
10Hibás válasz0/285ms26872 KiB
11Hibás válasz0/285ms26748 KiB
12Hibás válasz0/290ms26716 KiB
13Hibás válasz0/2100ms26824 KiB
14Hibás válasz0/2101ms26936 KiB
15Hibás válasz0/293ms26932 KiB
16Hibás válasz0/293ms26984 KiB
17Hibás válasz0/286ms26984 KiB
18Hibás válasz0/296ms27180 KiB
19Hibás válasz0/2101ms27296 KiB
20Hibás válasz0/286ms27300 KiB
21Hibás válasz0/293ms27148 KiB
22Hibás válasz0/297ms27144 KiB
23Hibás válasz0/297ms27136 KiB
24Hibás válasz0/386ms27404 KiB