107102024-04-10 09:44:50szilVállalati ügyeletcpp17Accepted 100/100490ms145280 KiB
#include <bits/stdc++.h>


using namespace std;
using ll = long long;

const int MAXN = 200'001;

int a[MAXN], p[MAXN], ans[MAXN];
set<int> t[MAXN];
vector<int> g[MAXN];

void dfs(int u) {
    ans[u] = 1;
    for (int v : g[u]) {
        dfs(v);
        if (t[v].size() > t[u].size()) swap(t[u], t[v]);
        for (int i : t[v]) t[u].insert(i);
        ans[u] = max(ans[u], ans[v]);
    }
    t[u].insert(a[u]);
    while (t[u].count(ans[u])) ans[u]++;
}

int main() {
    ios::sync_with_stdio(0); cin.tie(0);
    int n; cin >> n;
    for (int i = 1; i <= n; i++) {
        cin >> p[i];
        g[p[i]].emplace_back(i);
    }
    for (int i = 1; i <= n; i++) {
        cin >> a[i];
    }
    dfs(1);
    for (int i = 1; i <= n; i++) {
        cout << ans[i] << " ";
    }
    cout << "\n";
    return 0;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted13ms30084 KiB
2Accepted214ms86264 KiB
subtask25/5
3Accepted12ms30584 KiB
4Accepted14ms30796 KiB
5Accepted13ms31008 KiB
6Accepted14ms31232 KiB
subtask38/8
7Accepted12ms30584 KiB
8Accepted14ms30796 KiB
9Accepted13ms31008 KiB
10Accepted14ms31232 KiB
11Accepted120ms57004 KiB
12Accepted130ms57916 KiB
13Accepted138ms58900 KiB
14Accepted232ms75044 KiB
subtask412/12
15Accepted12ms30584 KiB
16Accepted14ms30796 KiB
17Accepted13ms31008 KiB
18Accepted14ms31232 KiB
19Accepted143ms99548 KiB
20Accepted156ms100704 KiB
21Accepted160ms101856 KiB
22Accepted230ms117804 KiB
23Accepted215ms118140 KiB
24Accepted174ms108648 KiB
subtask517/17
25Accepted12ms30584 KiB
26Accepted14ms30796 KiB
27Accepted13ms31008 KiB
28Accepted14ms31232 KiB
29Accepted14ms32444 KiB
30Accepted14ms32784 KiB
31Accepted14ms32812 KiB
32Accepted14ms32680 KiB
33Accepted14ms32812 KiB
34Accepted16ms32512 KiB
35Accepted17ms33140 KiB
36Accepted17ms33208 KiB
37Accepted17ms33424 KiB
38Accepted17ms33220 KiB
39Accepted17ms33136 KiB
40Accepted17ms33204 KiB
41Accepted14ms33444 KiB
subtask628/28
42Accepted270ms110088 KiB
43Accepted236ms98308 KiB
44Accepted219ms98184 KiB
45Accepted230ms103756 KiB
46Accepted215ms110180 KiB
47Accepted201ms115936 KiB
48Accepted236ms76644 KiB
49Accepted246ms119044 KiB
50Accepted214ms118972 KiB
subtask730/30
51Accepted13ms33020 KiB
52Accepted215ms88964 KiB
53Accepted12ms30584 KiB
54Accepted14ms30796 KiB
55Accepted13ms31008 KiB
56Accepted14ms31232 KiB
57Accepted120ms57004 KiB
58Accepted130ms57916 KiB
59Accepted138ms58900 KiB
60Accepted232ms75044 KiB
61Accepted143ms99548 KiB
62Accepted156ms100704 KiB
63Accepted160ms101856 KiB
64Accepted230ms117804 KiB
65Accepted215ms118140 KiB
66Accepted174ms108648 KiB
67Accepted14ms32444 KiB
68Accepted14ms32784 KiB
69Accepted14ms32812 KiB
70Accepted14ms32680 KiB
71Accepted14ms32812 KiB
72Accepted16ms32512 KiB
73Accepted17ms33140 KiB
74Accepted17ms33208 KiB
75Accepted17ms33424 KiB
76Accepted17ms33220 KiB
77Accepted17ms33136 KiB
78Accepted17ms33204 KiB
79Accepted14ms33444 KiB
80Accepted270ms110088 KiB
81Accepted236ms98308 KiB
82Accepted219ms98184 KiB
83Accepted230ms103756 KiB
84Accepted215ms110180 KiB
85Accepted201ms115936 KiB
86Accepted236ms76644 KiB
87Accepted246ms119044 KiB
88Accepted214ms118972 KiB
89Accepted280ms86116 KiB
90Accepted305ms92852 KiB
91Accepted384ms133484 KiB
92Accepted490ms145280 KiB
93Accepted209ms89828 KiB
94Accepted272ms102252 KiB
95Accepted240ms114464 KiB
96Accepted210ms85180 KiB
97Accepted197ms84532 KiB
98Accepted201ms85840 KiB
99Accepted254ms96436 KiB
100Accepted219ms88924 KiB
101Accepted194ms94340 KiB