Bạn được cho một cây gốc (rooted tree) với đỉnh gốc là đỉnh số 1. Mỗi đỉnh trong cây được tô một màu nào đó. Chúng ta gọi màu \(c\) là màu thống trị trong cây con của đỉnh \(v\) nếu không có màu nào khác xuất hiện nhiều hơn màu \(c\) trong cây con của đỉnh \(v\). Có thể có nhiều hơn một màu thống trị trong cùng một cây con. Cây con của một đỉnh \(v\) bao gồm: Chính đỉnh \(v\), và Tất cả các đỉnh khác nằm phía dưới \(v\) trong cây (nghĩa là: mọi đỉnh mà đường đi từ nó đến gốc đều đi qua \(v\)).
Nhiệm vụ của bạn: Với mỗi đỉnh \(v\), hãy tính tổng tất cả các màu thống trị trong cây con của đỉnh đó.
Dữ liệu vào:
+ Dòng đầu tiên chứa một số nguyên \(n\ (1\ \leq \ n\ \leq \ 10⁵)\) — số lượng đỉnh trong cây.
+ Dòng thứ hai chứa \(n\) số nguyên \(c₁,\ c₂,\ ...,\ cₙ\) \((1\ \leq \ cᵢ\ \leq \ n)\), trong đó \(cᵢ\) là màu của đỉnh thứ \(i\).
+ Mỗi dòng tiếp theo trong số \(n\ - \ 1\) dòng tiếp theo chứa hai số nguyên \(xⱼ\) và \(yⱼ\) \((1\ \leq \ xⱼ,\ yⱼ\ \leq \ n)\), biểu diễn một cạnh của cây (nối đỉnh \(xⱼ\) với \(yⱼ\)).
Kết quả:
In ra \(n\) số nguyên, mỗi số là tổng các màu thống trị trong cây con của từng đỉnh (theo thứ tự từ 1 đến \(n\)).
Ví dụ:
| Input | Output |
|---|---|
| 4 1 2 3 4 1 2 2 3 2 4 | 10 9 3 4 |
| 15 1 2 3 1 2 3 3 1 1 3 2 2 1 2 3 1 2 1 3 1 4 1 14 1 15 2 5 2 6 2 7 3 8 3 9 3 10 4 11 4 12 4 13 | 6 5 4 3 2 3 3 1 1 3 2 2 1 2 3 |
| Code tích cực |
|---|
| Trong 24h |
|
| Trong 7 ngày |
|
| Trong 30 ngày |
|
| Thống kê |
|---|
|
AC/Sub: 120817/226949 Pascal: 18142 C++: 157988 Python: 50747 Lượt xem/tải tests: 41021 |