- Time limit: 1.00 s
- Memory limit: 512 MB
Sinulle annetaan juurellinen puu, jonka jokaisessa solmussa on tietty arvo. Tehtäväsi on laskea jokaiseen solmuun, montako eri arvoa solmun alipuussa on.
Syöte
Syötteen ensimmäisellä rivillä on kokonaisluku n: solmujen määrä. Solmut on numeroitu 1,2,\dots,n, ja solmu 1 on puun juuri.
Seuraavalla rivillä on n kokonaislukua x_1,x_2,\dots,x_n: kunkin solmun arvo.
Sitten syötteessä on n-1 riviä, jotka kuvaavat puun rakenteen. Jokaisella rivillä on kaksi kokonaislukua a ja b: solmujen a ja b välillä on kaari.
Tuloste
Tulosta n kokonaislukua: vastaus jokaiselle solmulle.
Rajat
- 1 \le n \le 2 \cdot 10^5
- 1 \le a, b \le n
- 1 \le x_i \le 10^9
Esimerkki
Syöte:
5 2 1 3 1 2 1 2 1 3 3 4 3 5
Tuloste:
3 1 3 1 1