1545 2022. 11. 23 10:16:12 TomaSajt Színes fa cpp14 Elfogadva 50/50 131ms 44724 KiB
#include <bits/stdc++.h>
#define speed ios::sync_with_stdio(0);cin.tie(0)
using namespace std;

vector<vector<int>> g;
vector<int> dist;
int m = INT_MAX;
void dfs(int u) {
    if (g[u].empty()) {
        m = min(m, dist[u]);
    }
    for (auto v : g[u]) {
        dist[v] = dist[u] + 1;
        dfs(v);
    }
}

int main() {
    speed;
    int n;
    cin >> n;
    g.resize(n + 1);
    dist.resize(n + 1);
    for (int i = 2; i <= n; i++) {
        int u; cin >> u;
        g[u].push_back(i);
    }
    dist[1] = 1;
    dfs(1);
    cout << m << '\n';
    for (int i = 1; i <= n; i++) {
        cout << min(m, dist[i]) << ' ';
    }
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 3ms 1768 KiB
2 Elfogadva 0/0 4ms 2860 KiB
3 Elfogadva 1/1 2ms 2248 KiB
4 Elfogadva 4/4 2ms 2368 KiB
5 Elfogadva 5/5 67ms 44724 KiB
6 Elfogadva 2/2 79ms 21448 KiB
7 Elfogadva 3/3 86ms 21656 KiB
8 Elfogadva 2/2 78ms 21320 KiB
9 Elfogadva 2/2 72ms 20488 KiB
10 Elfogadva 2/2 75ms 21564 KiB
11 Elfogadva 2/2 78ms 24000 KiB
12 Elfogadva 2/2 86ms 25508 KiB
13 Elfogadva 2/2 131ms 26260 KiB
14 Elfogadva 2/2 87ms 26600 KiB
15 Elfogadva 2/2 114ms 27020 KiB
16 Elfogadva 2/2 97ms 27064 KiB
17 Elfogadva 2/2 101ms 27720 KiB
18 Elfogadva 2/2 89ms 27744 KiB
19 Elfogadva 2/2 101ms 27776 KiB
20 Elfogadva 2/2 101ms 27768 KiB
21 Elfogadva 2/2 101ms 28372 KiB
22 Elfogadva 2/2 104ms 28696 KiB
23 Elfogadva 2/2 112ms 32688 KiB
24 Elfogadva 3/3 97ms 37320 KiB