6831.Distinct Colors

Time Limit: 1s Memory Limit: 512MB

You are given a rooted tree consisting of $n$ nodes. The nodes are numbered $1,2,\ldots,n$ , and node $1$ is the root. Each node has a color.

Your task is to determine for each node the number of distinct colors in the subtree of the node.

Input Format(From the terminal/stdin)

The first input line contains an integer $n$ : the number of nodes. The nodes are numbered $1,2,\ldots,n$ .

The next line consists of $n$ integers $c_1,c_2,\ldots,c_n$ : the color of each node.

Then there are $n-1$ lines describing the edges. Each line contains two integers $a$ and $b$ : there is an edge between nodes $a$ and $b$ .

  • $1 \le n \le 2 \cdot 10^5$
  • $1 \le a,b \le n$
  • $1 \le c_i \le 10^9$

Output Format(To the terminal/stdout)

Print $n$ integers: for each node $1,2,\ldots,n$ , the number of distinct colors.

Sample Input

Copy
5
2 3 2 2 1
1 2
1 3
3 4
3 5
 \n
 · · · · \n
 · \n
 · \n
 · \n
 · \n

Sample Output

Copy
3 1 2 1 1
 · · · · \n
Source: CSES, Tree Algorithms, 1139

Submit

请先 登录

© 2025 FAQs