280032026-05-13 19:09:06KristófVállalati ügyeletcpp17Elfogadva 100/100619ms80992 KiB
#include <iostream>
#include <vector>
#include <map>
#include <unordered_map>
using namespace std;
struct Node
{
unordered_map<int,int> um;
int x;
vector<int> child;
int val;
};

vector<int> mex;

void dfs(vector<Node> &g,int s)
{
int start=1;
for(int x:g[s].child)
    {
    dfs(g,x);
    start=max(start,mex[x]);
    if(g[x].um.size()>g[s].um.size())swap(g[s].um,g[x].um);
    for(auto [x1,y1] : g[x].um)
        g[s].um[x1]+=y1;
    }
g[s].um[g[s].val]++;
while(g[s].um[start])start++;
mex[s]=start;
}


int main()
{
    int n;
    cin>>n;
    vector<Node> g(n);
    mex.resize(n,1);
    for(int i=0;i<n;i++)
        {
        int x;cin>>x;
        if(i==0)continue;
        g[--x].child.push_back(i);
        }
    for(int i=0;i<n;i++)
        {
        int x;cin>>x;
        g[i].val=x;
        }
    dfs(g,0);
    for(int x:mex)cout<<x<<" ";
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
2Elfogadva317ms52548 KiB
subtask25/5
3Elfogadva1ms512 KiB
4Elfogadva2ms316 KiB
5Elfogadva1ms316 KiB
6Elfogadva2ms316 KiB
subtask38/8
7Elfogadva1ms512 KiB
8Elfogadva2ms316 KiB
9Elfogadva1ms316 KiB
10Elfogadva2ms316 KiB
11Elfogadva238ms55784 KiB
12Elfogadva241ms56392 KiB
13Elfogadva252ms56728 KiB
14Elfogadva326ms64404 KiB
subtask412/12
15Elfogadva1ms512 KiB
16Elfogadva2ms316 KiB
17Elfogadva1ms316 KiB
18Elfogadva2ms316 KiB
19Elfogadva223ms46132 KiB
20Elfogadva231ms46388 KiB
21Elfogadva248ms46892 KiB
22Elfogadva319ms54440 KiB
23Elfogadva263ms55136 KiB
24Elfogadva256ms50596 KiB
subtask517/17
25Elfogadva1ms512 KiB
26Elfogadva2ms316 KiB
27Elfogadva1ms316 KiB
28Elfogadva2ms316 KiB
29Elfogadva4ms820 KiB
30Elfogadva4ms820 KiB
31Elfogadva4ms1004 KiB
32Elfogadva4ms820 KiB
33Elfogadva4ms888 KiB
34Elfogadva3ms644 KiB
35Elfogadva4ms956 KiB
36Elfogadva3ms820 KiB
37Elfogadva3ms820 KiB
38Elfogadva4ms820 KiB
39Elfogadva3ms820 KiB
40Elfogadva4ms820 KiB
41Elfogadva3ms820 KiB
subtask628/28
42Elfogadva412ms65348 KiB
43Elfogadva337ms59232 KiB
44Elfogadva335ms57172 KiB
45Elfogadva293ms56668 KiB
46Elfogadva280ms56416 KiB
47Elfogadva282ms55644 KiB
48Elfogadva361ms64452 KiB
49Elfogadva289ms54440 KiB
50Elfogadva275ms55132 KiB
subtask730/30
51Elfogadva2ms316 KiB
52Elfogadva300ms52476 KiB
53Elfogadva1ms512 KiB
54Elfogadva2ms316 KiB
55Elfogadva1ms316 KiB
56Elfogadva2ms316 KiB
57Elfogadva238ms55784 KiB
58Elfogadva241ms56392 KiB
59Elfogadva252ms56728 KiB
60Elfogadva326ms64404 KiB
61Elfogadva223ms46132 KiB
62Elfogadva231ms46388 KiB
63Elfogadva248ms46892 KiB
64Elfogadva319ms54440 KiB
65Elfogadva263ms55136 KiB
66Elfogadva256ms50596 KiB
67Elfogadva4ms820 KiB
68Elfogadva4ms820 KiB
69Elfogadva4ms1004 KiB
70Elfogadva4ms820 KiB
71Elfogadva4ms888 KiB
72Elfogadva3ms644 KiB
73Elfogadva4ms956 KiB
74Elfogadva3ms820 KiB
75Elfogadva3ms820 KiB
76Elfogadva4ms820 KiB
77Elfogadva3ms820 KiB
78Elfogadva4ms820 KiB
79Elfogadva3ms820 KiB
80Elfogadva412ms65348 KiB
81Elfogadva337ms59232 KiB
82Elfogadva335ms57172 KiB
83Elfogadva293ms56668 KiB
84Elfogadva280ms56416 KiB
85Elfogadva282ms55644 KiB
86Elfogadva361ms64452 KiB
87Elfogadva289ms54440 KiB
88Elfogadva275ms55132 KiB
89Elfogadva435ms53848 KiB
90Elfogadva377ms56884 KiB
91Elfogadva619ms75536 KiB
92Elfogadva578ms80992 KiB
93Elfogadva307ms49580 KiB
94Elfogadva316ms52136 KiB
95Elfogadva303ms55720 KiB
96Elfogadva328ms50240 KiB
97Elfogadva279ms49476 KiB
98Elfogadva287ms48964 KiB
99Elfogadva349ms57256 KiB
100Elfogadva289ms51880 KiB
101Elfogadva289ms51368 KiB