108372024-04-16 12:31:03TomaSajtVállalati ügyeletcpp17Elfogadva 100/100439ms158440 KiB
#include <bits/stdc++.h>
#define int long long
using namespace std;

vector<vector<int>> g;
vector<set<int>> sets;
vector<int> vals, mexes;

void dfs(int u) {
  sets[u].insert(vals[u]);
  for (int v : g[u]) {
    dfs(v);
    mexes[u] = max(mexes[u], mexes[v]);
    if (sets[u].size() < sets[v].size()) swap(sets[u], sets[v]);
    sets[u].insert(sets[v].begin(), sets[v].end());
  }
  auto it = sets[u].lower_bound(mexes[u]);
  while (it != sets[u].end() && *it == mexes[u]) mexes[u]++, it++;
}

signed main() {
  ios::sync_with_stdio(0), cin.tie(0);
  int n;
  cin >> n;
  g.resize(n + 1);
  sets.resize(n + 1);
  mexes.resize(n + 1, 1);
  vals.resize(n + 1);
  for (int i = 1; i <= n; i++) {
    int p;
    cin >> p;
    g[p].push_back(i);
  }
  for (int i = 1; i <= n; i++) cin >> vals[i];
  dfs(1);
  for (int i = 1; i <= n; i++) cout << mexes[i] << ' ';
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1888 KiB
2Elfogadva215ms101272 KiB
subtask25/5
3Elfogadva3ms2412 KiB
4Elfogadva3ms2624 KiB
5Elfogadva3ms2740 KiB
6Elfogadva3ms2812 KiB
subtask38/8
7Elfogadva3ms2412 KiB
8Elfogadva3ms2624 KiB
9Elfogadva3ms2740 KiB
10Elfogadva3ms2812 KiB
11Elfogadva130ms59876 KiB
12Elfogadva141ms61328 KiB
13Elfogadva149ms62196 KiB
14Elfogadva222ms78076 KiB
subtask412/12
15Elfogadva3ms2412 KiB
16Elfogadva3ms2624 KiB
17Elfogadva3ms2740 KiB
18Elfogadva3ms2812 KiB
19Elfogadva167ms107080 KiB
20Elfogadva167ms108316 KiB
21Elfogadva172ms109320 KiB
22Elfogadva245ms125296 KiB
23Elfogadva212ms125284 KiB
24Elfogadva188ms116036 KiB
subtask517/17
25Elfogadva3ms2412 KiB
26Elfogadva3ms2624 KiB
27Elfogadva3ms2740 KiB
28Elfogadva3ms2812 KiB
29Elfogadva4ms4608 KiB
30Elfogadva4ms5304 KiB
31Elfogadva4ms5292 KiB
32Elfogadva4ms5184 KiB
33Elfogadva4ms5500 KiB
34Elfogadva4ms5180 KiB
35Elfogadva4ms5576 KiB
36Elfogadva4ms5260 KiB
37Elfogadva4ms5640 KiB
38Elfogadva4ms5540 KiB
39Elfogadva4ms5200 KiB
40Elfogadva4ms5448 KiB
41Elfogadva4ms5644 KiB
subtask628/28
42Elfogadva298ms122920 KiB
43Elfogadva229ms110540 KiB
44Elfogadva230ms109740 KiB
45Elfogadva211ms114396 KiB
46Elfogadva206ms119572 KiB
47Elfogadva196ms124360 KiB
48Elfogadva223ms79564 KiB
49Elfogadva229ms126812 KiB
50Elfogadva196ms126788 KiB
subtask730/30
51Elfogadva3ms4832 KiB
52Elfogadva215ms103932 KiB
53Elfogadva3ms2412 KiB
54Elfogadva3ms2624 KiB
55Elfogadva3ms2740 KiB
56Elfogadva3ms2812 KiB
57Elfogadva130ms59876 KiB
58Elfogadva141ms61328 KiB
59Elfogadva149ms62196 KiB
60Elfogadva222ms78076 KiB
61Elfogadva167ms107080 KiB
62Elfogadva167ms108316 KiB
63Elfogadva172ms109320 KiB
64Elfogadva245ms125296 KiB
65Elfogadva212ms125284 KiB
66Elfogadva188ms116036 KiB
67Elfogadva4ms4608 KiB
68Elfogadva4ms5304 KiB
69Elfogadva4ms5292 KiB
70Elfogadva4ms5184 KiB
71Elfogadva4ms5500 KiB
72Elfogadva4ms5180 KiB
73Elfogadva4ms5576 KiB
74Elfogadva4ms5260 KiB
75Elfogadva4ms5640 KiB
76Elfogadva4ms5540 KiB
77Elfogadva4ms5200 KiB
78Elfogadva4ms5448 KiB
79Elfogadva4ms5644 KiB
80Elfogadva298ms122920 KiB
81Elfogadva229ms110540 KiB
82Elfogadva230ms109740 KiB
83Elfogadva211ms114396 KiB
84Elfogadva206ms119572 KiB
85Elfogadva196ms124360 KiB
86Elfogadva223ms79564 KiB
87Elfogadva229ms126812 KiB
88Elfogadva196ms126788 KiB
89Elfogadva270ms99284 KiB
90Elfogadva291ms106168 KiB
91Elfogadva409ms146404 KiB
92Elfogadva439ms158440 KiB
93Elfogadva214ms102976 KiB
94Elfogadva222ms113648 KiB
95Elfogadva229ms124280 KiB
96Elfogadva210ms100920 KiB
97Elfogadva199ms100308 KiB
98Elfogadva190ms100616 KiB
99Elfogadva233ms110052 KiB
100Elfogadva221ms103336 KiB
101Elfogadva195ms107392 KiB