157292025-02-24 21:18:55TaxiradioVállalati ügyeletcpp17Elfogadva 100/100337ms36784 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+2);
    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 << " ";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
2Elfogadva216ms24232 KiB
subtask25/5
3Elfogadva1ms316 KiB
4Elfogadva1ms500 KiB
5Elfogadva1ms316 KiB
6Elfogadva1ms500 KiB
subtask38/8
7Elfogadva1ms316 KiB
8Elfogadva1ms500 KiB
9Elfogadva1ms316 KiB
10Elfogadva1ms500 KiB
11Elfogadva158ms21284 KiB
12Elfogadva165ms21220 KiB
13Elfogadva163ms20972 KiB
14Elfogadva192ms20172 KiB
subtask412/12
15Elfogadva1ms316 KiB
16Elfogadva1ms500 KiB
17Elfogadva1ms316 KiB
18Elfogadva1ms500 KiB
19Elfogadva217ms36784 KiB
20Elfogadva224ms36264 KiB
21Elfogadva238ms36300 KiB
22Elfogadva284ms35132 KiB
23Elfogadva243ms36056 KiB
24Elfogadva233ms36036 KiB
subtask517/17
25Elfogadva1ms316 KiB
26Elfogadva1ms500 KiB
27Elfogadva1ms316 KiB
28Elfogadva1ms500 KiB
29Elfogadva3ms564 KiB
30Elfogadva3ms760 KiB
31Elfogadva3ms564 KiB
32Elfogadva3ms564 KiB
33Elfogadva3ms564 KiB
34Elfogadva3ms564 KiB
35Elfogadva3ms564 KiB
36Elfogadva3ms564 KiB
37Elfogadva3ms568 KiB
38Elfogadva3ms568 KiB
39Elfogadva3ms564 KiB
40Elfogadva3ms536 KiB
41Elfogadva3ms564 KiB
subtask628/28
42Elfogadva237ms22824 KiB
43Elfogadva246ms24120 KiB
44Elfogadva237ms26444 KiB
45Elfogadva230ms29648 KiB
46Elfogadva231ms32352 KiB
47Elfogadva238ms34728 KiB
48Elfogadva201ms20264 KiB
49Elfogadva261ms35108 KiB
50Elfogadva239ms36012 KiB
subtask730/30
51Elfogadva1ms316 KiB
52Elfogadva217ms24232 KiB
53Elfogadva1ms316 KiB
54Elfogadva1ms500 KiB
55Elfogadva1ms316 KiB
56Elfogadva1ms500 KiB
57Elfogadva158ms21284 KiB
58Elfogadva165ms21220 KiB
59Elfogadva163ms20972 KiB
60Elfogadva192ms20172 KiB
61Elfogadva217ms36784 KiB
62Elfogadva224ms36264 KiB
63Elfogadva238ms36300 KiB
64Elfogadva284ms35132 KiB
65Elfogadva243ms36056 KiB
66Elfogadva233ms36036 KiB
67Elfogadva3ms564 KiB
68Elfogadva3ms760 KiB
69Elfogadva3ms564 KiB
70Elfogadva3ms564 KiB
71Elfogadva3ms564 KiB
72Elfogadva3ms564 KiB
73Elfogadva3ms564 KiB
74Elfogadva3ms564 KiB
75Elfogadva3ms568 KiB
76Elfogadva3ms568 KiB
77Elfogadva3ms564 KiB
78Elfogadva3ms536 KiB
79Elfogadva3ms564 KiB
80Elfogadva237ms22824 KiB
81Elfogadva246ms24120 KiB
82Elfogadva237ms26444 KiB
83Elfogadva230ms29648 KiB
84Elfogadva231ms32352 KiB
85Elfogadva238ms34728 KiB
86Elfogadva201ms20264 KiB
87Elfogadva261ms35108 KiB
88Elfogadva239ms36012 KiB
89Elfogadva239ms23728 KiB
90Elfogadva240ms23732 KiB
91Elfogadva337ms22956 KiB
92Elfogadva300ms22696 KiB
93Elfogadva243ms26844 KiB
94Elfogadva261ms29608 KiB
95Elfogadva261ms32176 KiB
96Elfogadva222ms25312 KiB
97Elfogadva206ms25764 KiB
98Elfogadva207ms26588 KiB
99Elfogadva229ms24232 KiB
100Elfogadva211ms25776 KiB
101Elfogadva212ms28584 KiB