157282025-02-24 21:17:27TaxiradioVállalati ügyeletcpp17Runtime error 0/100310ms38996 KiB
// Source: https://usaco.guide/general/io

#include <algorithm>
#include <bits/stdc++.h>
using namespace std;

vector<vector<int>> g , b;
vector<int> a , ans;
vector<array<int , 2>> c;

int t = 0;

void dfs(int h){
    c[h][0] = t++;
    b[a[h]].push_back(c[h][0]);
    for(int x : g[h])dfs(x);
    c[h][1] = t++;
}

int dfs2(int h){
    ans[h] = 1;
    for(int x : g[h])ans[h] = max(dfs2(x) , ans[h]);
    while(*lower_bound(b[ans[h]].begin() , b[ans[h]].end() , c[h][0]) <= c[h][1])ans[h]++;
    return ans[h];
}

int main() {
	int n; cin >> n;
    g.resize(n);
    b.resize(n+1);
    ans.resize(n);
    c.resize(n);
    for(int i = 0; i < n; i++){
        int y; cin >> y;y--;
        if(y != -1)g[y].push_back(i);
    }
    for(int i = 0; i < n; i++){
        int y; cin >> y;
        a.push_back(y);
    }
    dfs(0);
    for(int i = 0; i < b.size(); i++){
        b[i].push_back(1000000);
    }
    dfs2(0);
    for(int x : ans)cout << x << " ";
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted1ms316 KiB
2Accepted223ms26536 KiB
subtask20/5
3Accepted1ms508 KiB
4Runtime error1ms316 KiB
5Runtime error1ms316 KiB
6Accepted1ms500 KiB
subtask30/8
7Accepted1ms508 KiB
8Runtime error1ms316 KiB
9Runtime error1ms316 KiB
10Accepted1ms500 KiB
11Accepted152ms22568 KiB
12Accepted160ms22668 KiB
13Accepted171ms22560 KiB
14Runtime error156ms21800 KiB
subtask40/12
15Accepted1ms508 KiB
16Runtime error1ms316 KiB
17Runtime error1ms316 KiB
18Accepted1ms500 KiB
19Accepted219ms38996 KiB
20Accepted238ms38824 KiB
21Accepted239ms38564 KiB
22Runtime error221ms37440 KiB
23Runtime error200ms37284 KiB
24Accepted230ms38564 KiB
subtask50/17
25Accepted1ms508 KiB
26Runtime error1ms316 KiB
27Runtime error1ms316 KiB
28Accepted1ms500 KiB
29Runtime error3ms756 KiB
30Runtime error3ms820 KiB
31Runtime error3ms820 KiB
32Runtime error3ms756 KiB
33Runtime error3ms564 KiB
34Accepted3ms756 KiB
35Runtime error3ms564 KiB
36Accepted3ms564 KiB
37Runtime error3ms636 KiB
38Accepted3ms564 KiB
39Accepted3ms564 KiB
40Accepted3ms564 KiB
41Accepted3ms564 KiB
subtask60/28
42Runtime error223ms25004 KiB
43Runtime error210ms26032 KiB
44Runtime error199ms28328 KiB
45Runtime error201ms31400 KiB
46Runtime error201ms34032 KiB
47Runtime error209ms36096 KiB
48Runtime error151ms21540 KiB
49Runtime error244ms37360 KiB
50Runtime error200ms37396 KiB
subtask70/30
51Accepted1ms500 KiB
52Accepted209ms24232 KiB
53Accepted1ms508 KiB
54Runtime error1ms316 KiB
55Runtime error1ms316 KiB
56Accepted1ms500 KiB
57Accepted152ms22568 KiB
58Accepted160ms22668 KiB
59Accepted171ms22560 KiB
60Runtime error156ms21800 KiB
61Accepted219ms38996 KiB
62Accepted238ms38824 KiB
63Accepted239ms38564 KiB
64Runtime error221ms37440 KiB
65Runtime error200ms37284 KiB
66Accepted230ms38564 KiB
67Runtime error3ms756 KiB
68Runtime error3ms820 KiB
69Runtime error3ms820 KiB
70Runtime error3ms756 KiB
71Runtime error3ms564 KiB
72Accepted3ms756 KiB
73Runtime error3ms564 KiB
74Accepted3ms564 KiB
75Runtime error3ms636 KiB
76Accepted3ms564 KiB
77Accepted3ms564 KiB
78Accepted3ms564 KiB
79Accepted3ms564 KiB
80Runtime error223ms25004 KiB
81Runtime error210ms26032 KiB
82Runtime error199ms28328 KiB
83Runtime error201ms31400 KiB
84Runtime error201ms34032 KiB
85Runtime error209ms36096 KiB
86Runtime error151ms21540 KiB
87Runtime error244ms37360 KiB
88Runtime error200ms37396 KiB
89Accepted282ms25520 KiB
90Accepted284ms25520 KiB
91Accepted282ms25280 KiB
92Runtime error310ms24808 KiB
93Accepted245ms28840 KiB
94Accepted270ms31908 KiB
95Runtime error211ms34288 KiB
96Accepted216ms27540 KiB
97Accepted209ms27820 KiB
98Accepted214ms28428 KiB
99Accepted233ms26536 KiB
100Accepted212ms27988 KiB
101Accepted215ms30576 KiB