1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
#include<cstdio>
#include<algorithm>
#include<vector>
#include<iostream>
#include<stack>
#include<bitset>
#define S 100007

using namespace std;
typedef long long ll;

ll T[S];
ll depth[S];

vector < pair < int , ll > > V[S];
int roz[S];

int R[S][20];

int lca(int x, int y){
    if(depth[y] > depth[x])
        swap(x,y);
    for(int i = 19; i >= 0;i--){
        if(depth[R[x][i]] >= depth[y])
            x = R[x][i];
    }
    if(x == y)
        return x;
    for(int i = 19; i >= 0;i--){
        if(R[x][i] != R[y][i]){
            x = R[x][i];
            y = R[y][i];
        }
    }
    return R[x][0];
}

ll dist(int x, int y){
    int p = lca(x,y);
    return depth[x] + depth[y] - 2*depth[p];
}

void DFS(int x, int r){
    R[x][0] = r;
    for(int i = 1; i <= 19;i++){
        R[x][i] = R[R[x][i-1]][i-1];
    }
    roz[x] = 1;
    for(int i = 0; i < V[x].size();i++){
        int v = V[x][i].first;
        if(v != r){
            depth[v] = depth[x] + V[x][i].second;
            DFS(v,x);
            roz[x] += roz[v];
        }
    }
}

int P[S];
bool deleted[S];

int centroid(int x){
    for(int i = 0; i < V[x].size();i++){
        int v = V[x][i].first;
        if(!deleted[v] && roz[v] > roz[x]/2){
            roz[x] -= roz[v];
            roz[v] += roz[x];
            return centroid(v);
        }
    }
    return x;
}

int decomposition(int x){
    int c = centroid(x);
    deleted[c] = 1;
    for(int i = 0; i < V[c].size();i++){
        int v = V[c][i].first;
        if(!deleted[v]){
            int p = decomposition(v);
            P[p] = c;
        }
    }
    return c;
}
vector < pair < ll, int > > D[S];
vector < pair < ll, int > > D2[S];

vector < vector < int > > K;
vector < vector < int > > K2;
vector < vector < int > > K3;

vector < bool > vis;
stack < int > Stos;
vector < int > C;
void DFS2(int x){
    vis[x] = 1;
    for(int i = 0; i < K[x].size();i++){
        int v = K[x][i];
        if(!vis[v])
            DFS2(v);
    }
    Stos.push(x);
}

void DFS3(int x, int c){
    C[x] = c;
    for(int i = 0; i < K2[x].size();i++){
        int v = K2[x][i];
        if(C[v] == 0){
            DFS3(v,c);
        }else{
            K3[C[v]].push_back(c);
        }
    }
}

vector < bitset < S > > bity;


int main(void){
    int n;
    scanf("%d",&n);
    for(int i = 1; i <= n;i++){
        scanf("%lld",&T[i]);
    }

    for(int i = 1; i < n;i++){
        int a,b;
        ll c;
        scanf("%d %d %lld",&a,&b,&c);
        V[a].push_back({b,c});
        V[b].push_back({a,c});
    }

    DFS(1,1);
    for(int i = 2; i <= n;i++){
        P[i] = R[i][0];
    }
    //int root = decomposition(1);

    for(int i = 1; i <= n;i++){
        int b = i;
        while(b != 0){
            D[b].push_back({dist(i,b),i});
            b = P[b];
        }
    }

    K.resize(n+3);
    K2.resize(n+3);
    int id = n;
    for(int i = 1; i <= n;i++){
        sort(D[i].begin(),D[i].end());

        for(int j = 0; j < D[i].size();j++){
            id++;
            K.push_back(vector<int>());
            K2.push_back(vector<int>());
            if(j != 0){
                K[id].push_back(id-1);
                K2[id-1].push_back(id);
            }
            K[id].push_back(D[i][j].second);
            K2[D[i][j].second].push_back(id);
            D2[i].push_back({D[i][j].first,id});
        }
    }

    for(int i = 1; i <= n;i++){
        int b = i;
        while(b != 0){
            ll d = T[i] - dist(i,b);
            if(d < 0){
                b = P[b];
                continue;
            }
            pair < ll, int > pa = {d,1e9};
            auto x = lower_bound(D2[b].begin(),D2[b].end(),pa);
            if(x == D2[b].end()){
                K[i].push_back(D2[b].back().second);
                K2[D2[b].back().second].push_back(i);
            }else{
                x = prev(x);
                K[i].push_back((*x).second);
                K2[(*x).second].push_back(i);
            }
            b = P[b];
        }
    }
    K3.resize(id+3);
    vis.resize(id+3);
    C.resize(id+3);



    for(int i = 1; i <= id;i++){
        if(!vis[i]){
            DFS2(i);
        }
    }
    int id2 = 0;
    while(!Stos.empty()){
        int x = Stos.top();
        Stos.pop();
        if(!C[x]){
            id2++;
            DFS3(x,id2);
        }
    }


    bity.resize(id+3);
    for(int i = 1; i <= n;i++){
        bity[C[i]].set(i,1);
    }
    for(int i = id2; i >= 1;i--){
        for(int j = 0; j < K3[i].size();j++){
            int v = K3[i][j];
            if(i != v)
                bity[i] |= bity[v];
        }
    }

    for(int i = 1; i <= n;i++){
        printf("%d ",bity[C[i]].count());
    }
    return 0;
}
/*

200
89706075587 30754619649 53679010083 11006026892 32299249501 62579806910 48724268812 44383969095 57632610429 54253031020 78539864257 49560125381 71951852656 77316328802 26467914927 77000901624 34717647472 78604181131 32413115172 55832889807 51226345032 76221348969 30403386570 32606310064 54973694930 33186314996 18707456041 69988918791 32099970968 73082012680 81321864070 79133144964 25413081976 17201346164 27249987103 45657764435 80270987991 79463660911 22630429000 91814124785 48081644576 40210154719 88620571077 46206270553 74699727930 33269937994 11481330243 98922756617 36978734362 45212868362 60442058840 73113548515 31295776162 68692135072 49077314749 12131130719 50302479885 73919936599 29020710164 53232730808 35117043163 61052139562 50190045957 94275883017 40007288874 74313863378 87690441049 27352530092 99682773567 55530515303 27722463139 40562955643 24820877491 60736397489 96805924873 99893100016 99529408579 92213895066 54631587328 69324563660 39597462450 96074564728 87651265267 72383916200 35620757374 29948488979 96388705960 65745196387 91708975491 20643493674 61307402146 95602920121 23730767834 32698325338 19859164228 99189049024 26443844743 23606696975 92344899582 86649257952 93100402107 91645954461 52828401848 94432044400 16530227796 63885718921 85985826937 87128323365 97541419494 73246694645 41618417287 28621988639 69969935279 99745518437 59632480809 94271303109 35200048883 19794817075 61948124647 39217339310 30799888097 28062030848 58250060642 92021647439 60091122738 21742958055 58897147360 41567937115 13330589088 37185450262 60197961034 59881617833 68850656199 68145313743 27019678128 50922210471 55607972157 86335579435 23599503347 95396989239 80276867617 89994278232 31747801884 14400233215 27930273905 89194658811 21717304364 58006643367 27100963299 11532485560 65123073170 28731271625 96647354382 19863867064 71896178229 34889622966 42393348701 80930539458 98182163579 10803910803 67374707884 16973381127 93281198993 46868628861 22127886809 42871875269 30639262393 74905729927 94985225279 96935156848 25428382956 90672109584 35659261488 70296066865 46659576389 78118164159 65653588591 60417378168 40505701889 49151962636 25315672455 54435621201 87610827991 61348178622 94948036526 63698869564 35934276546 58603976571 76874356349 70075426418 85971942015 99209442414 25300198926 59225096188 49950963246 87665267441 41314304368 39404368837 47389217059 45690214192
1 2 84722245617
1 3 66930407668
3 4 87592478635
3 5 59419305289
3 6 64718993075
4 7 57374401112
6 8 41415935165
4 9 70102126418
2 10 19393290367
8 11 63589436539
1 12 77837738968
5 13 57794533378
13 14 83269107678
6 15 70326093680
13 16 93517770163
14 17 89723268912
11 18 77027053730
9 19 98882506205
19 20 99803347256
13 21 24028117551
11 22 28657113852
12 23 6408434811
1 24 34133447699
17 25 9038709789
2 26 67302122038
19 27 85475560885
27 28 68371414117
11 29 97109023056
7 30 34543209895
27 31 53298812247
12 32 10281677163
14 33 8749075654
22 34 74570793567
29 35 98854813251
10 36 72714848162
12 37 74710275106
11 38 51178404912
4 39 58021562861
38 40 42024754366
36 41 34052629502
11 42 82152444387
19 43 7521509978
25 44 25209709827
37 45 97628256288
11 46 31768243714
39 47 53516461742
10 48 97929483477
5 49 17245194589
44 50 36256936370
12 51 79935445111
12 52 42666797585
48 53 32078147823
20 54 82741270866
48 55 44244796749
45 56 33673875047
45 57 33841768491
46 58 28166548823
39 59 81297581828
10 60 62981466346
52 61 60737177425
5 62 21924661297
11 63 99151586731
49 64 92672782289
46 65 26119189262
30 66 77217526447
13 67 39646060432
8 68 5271504489
12 69 39376050994
63 70 27464297226
70 71 14581814140
28 72 80847820232
39 73 93710456198
64 74 66336411673
25 75 20892564607
29 76 9742521347
68 77 97333616547
58 78 34107990352
67 79 10147409300
1 80 2307559420
75 81 20434151082
49 82 17704337882
13 83 17943972240
77 84 67660666932
56 85 91168414045
83 86 8816807582
72 87 40768920487
1 88 57963943616
2 89 69734993472
11 90 77551564230
56 91 18058777123
56 92 59729442770
82 93 21645541622
89 94 20375118151
65 95 20978064054
73 96 60689177005
81 97 56475707941
76 98 99890041218
33 99 81481016158
27 100 79143854495
98 101 6757221471
95 102 94283490632
89 103 2517270304
32 104 27281068966
15 105 78427337076
20 106 12228632466
91 107 92765496329
87 108 59593099097
30 109 63162533453
90 110 9485345076
102 111 10914978714
13 112 53209420617
71 113 14827261709
75 114 39335882693
3 115 79150074634
113 116 88324030535
73 117 99070622369
31 118 84392509464
59 119 37188692242
2 120 16110345008
108 121 7819855455
119 122 51294838856
85 123 37316547265
6 124 47234725602
39 125 91286572539
99 126 34307897990
56 127 41260380473
123 128 67704990532
44 129 39332809372
53 130 54565413830
11 131 89098789025
97 132 33980076477
11 133 27940602644
15 134 76417217509
8 135 31287609294
2 136 50838679504
71 137 23988293733
29 138 56725376398
113 139 74862347559
139 140 32048046652
63 141 74721324839
131 142 1401668214
64 143 51831610985
118 144 83059472048
32 145 90433881303
138 146 18588228570
46 147 70467560399
14 148 42488163536
41 149 74390883755
136 150 52722926872
81 151 74662419443
149 152 63111146126
67 153 72036510794
77 154 17030970589
10 155 36809241710
150 156 60980800237
1 157 25749303842
82 158 25556810629
92 159 82162511387
54 160 62324142580
55 161 10747086299
151 162 88748045010
14 163 79700994211
5 164 91294073624
91 165 36272800257
46 166 83420491064
82 167 92907999698
145 168 36889912653
4 169 97223924142
152 170 90792205896
111 171 28199614358
48 172 75468899627
104 173 35079846981
112 174 8566458798
55 175 15274003028
76 176 95056562408
166 177 54137056786
154 178 65948171929
84 179 53741239025
131 180 57981356659
2 181 52049060719
129 182 69690474819
123 183 21904880767
74 184 79328680664
11 185 1184211504
80 186 10351415087
129 187 67836745817
137 188 64791398037
45 189 41820809614
91 190 2996137841
137 191 18631512101
60 192 41706580075
162 193 69448830929
58 194 43113770449
119 195 30163775526
24 196 29164486462
140 197 88519782100
182 198 92329854129
145 199 25156305947
19 200 13712906638


*/