109232024-04-19 11:36:36k_balintVállalati ügyeletcpp17Elfogadva 100/100509ms160660 KiB
#include <bits/stdc++.h>
using namespace std;
const int c=2e5+5;

int n;
vector<int> adj[c];
int arr[c], ans[c];
set<int> s[c];

void dfs(int v, int p){
    for(int x:adj[v]){
        if(x != p) dfs(x,v);
    }

    s[v].insert(arr[v]);
    ans[v]=1;
    for(int x:adj[v]){
        if(x==p) continue;
        ans[v]=max(ans[v],ans[x]);
        if(s[x].size() > s[v].size()) swap(s[x],s[v]);
        for(int y:s[x]) s[v].insert(y);
    }

    while(s[v].find(ans[v]) != s[v].end()) ++ans[v];
}

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);

    cin>>n;
    for(int i=1;i<=n;i++){
        int p; cin>>p;
        if(p != 0){
            adj[i].push_back(p);
            adj[p].push_back(i);
        }
    }

    for(int i=1;i<=n;i++) cin>>arr[i];
    dfs(1,0);
    for(int i=1;i<=n;i++){
        cout << ans[i] << ' ';
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva13ms30048 KiB
2Elfogadva241ms102988 KiB
subtask25/5
3Elfogadva13ms30580 KiB
4Elfogadva13ms30908 KiB
5Elfogadva13ms30864 KiB
6Elfogadva14ms31196 KiB
subtask38/8
7Elfogadva13ms30580 KiB
8Elfogadva13ms30908 KiB
9Elfogadva13ms30864 KiB
10Elfogadva14ms31196 KiB
11Elfogadva127ms68024 KiB
12Elfogadva143ms69016 KiB
13Elfogadva143ms69860 KiB
14Elfogadva240ms86020 KiB
subtask412/12
15Elfogadva13ms30580 KiB
16Elfogadva13ms30908 KiB
17Elfogadva13ms30864 KiB
18Elfogadva14ms31196 KiB
19Elfogadva192ms116924 KiB
20Elfogadva204ms118088 KiB
21Elfogadva210ms119020 KiB
22Elfogadva310ms135184 KiB
23Elfogadva231ms135196 KiB
24Elfogadva202ms125804 KiB
subtask517/17
25Elfogadva13ms30580 KiB
26Elfogadva13ms30908 KiB
27Elfogadva13ms30864 KiB
28Elfogadva14ms31196 KiB
29Elfogadva14ms32344 KiB
30Elfogadva14ms32836 KiB
31Elfogadva14ms32840 KiB
32Elfogadva14ms32608 KiB
33Elfogadva17ms32908 KiB
34Elfogadva14ms32600 KiB
35Elfogadva14ms33084 KiB
36Elfogadva17ms33136 KiB
37Elfogadva16ms33368 KiB
38Elfogadva14ms33172 KiB
39Elfogadva17ms33356 KiB
40Elfogadva16ms33492 KiB
41Elfogadva14ms33424 KiB
subtask628/28
42Elfogadva324ms125472 KiB
43Elfogadva287ms114312 KiB
44Elfogadva247ms115264 KiB
45Elfogadva245ms121624 KiB
46Elfogadva238ms128080 KiB
47Elfogadva241ms133596 KiB
48Elfogadva214ms87568 KiB
49Elfogadva358ms136172 KiB
50Elfogadva233ms136088 KiB
subtask730/30
51Elfogadva13ms32756 KiB
52Elfogadva240ms105428 KiB
53Elfogadva13ms30580 KiB
54Elfogadva13ms30908 KiB
55Elfogadva13ms30864 KiB
56Elfogadva14ms31196 KiB
57Elfogadva127ms68024 KiB
58Elfogadva143ms69016 KiB
59Elfogadva143ms69860 KiB
60Elfogadva240ms86020 KiB
61Elfogadva192ms116924 KiB
62Elfogadva204ms118088 KiB
63Elfogadva210ms119020 KiB
64Elfogadva310ms135184 KiB
65Elfogadva231ms135196 KiB
66Elfogadva202ms125804 KiB
67Elfogadva14ms32344 KiB
68Elfogadva14ms32836 KiB
69Elfogadva14ms32840 KiB
70Elfogadva14ms32608 KiB
71Elfogadva17ms32908 KiB
72Elfogadva14ms32600 KiB
73Elfogadva14ms33084 KiB
74Elfogadva17ms33136 KiB
75Elfogadva16ms33368 KiB
76Elfogadva14ms33172 KiB
77Elfogadva17ms33356 KiB
78Elfogadva16ms33492 KiB
79Elfogadva14ms33424 KiB
80Elfogadva324ms125472 KiB
81Elfogadva287ms114312 KiB
82Elfogadva247ms115264 KiB
83Elfogadva245ms121624 KiB
84Elfogadva238ms128080 KiB
85Elfogadva241ms133596 KiB
86Elfogadva214ms87568 KiB
87Elfogadva358ms136172 KiB
88Elfogadva233ms136088 KiB
89Elfogadva286ms101404 KiB
90Elfogadva361ms108496 KiB
91Elfogadva509ms148916 KiB
92Elfogadva472ms160660 KiB
93Elfogadva246ms106228 KiB
94Elfogadva270ms119128 KiB
95Elfogadva298ms131784 KiB
96Elfogadva239ms102372 KiB
97Elfogadva224ms101940 KiB
98Elfogadva216ms103340 KiB
99Elfogadva287ms112800 KiB
100Elfogadva233ms106332 KiB
101Elfogadva222ms112028 KiB