#P1202. 子树众数普查

    ID: 214 传统题 2000ms 256MiB 尝试: 1 已通过: 1通过率: 100%难度: 普及+/提高− ← 上一题 下一题 → 随机一题 上传者: 标签 树形结构 启发式合并 深度优先搜索 DFS 数据结构
显示设置

子树众数普查

题目描述

小 Y 有一棵以 11 号节点为根的树,共 nn 个节点,每个节点被涂上了某种颜色,第 ii 个节点的颜色为 aia_i。

对每个节点 uu,请你求出:在 uu 的子树中,是否存在一种颜色,它出现的次数严格大于子树大小的一半。若存在,输出这种颜色的编号;否则输出 -1。

可以证明,满足条件的颜色至多只有一种。

输入格式

第一行一个整数 nn。

第二行 nn 个整数 a1∼ana_1\sim a_n。

接下来 n−1n-1 行,每行两个整数 u,vu,v,表示一条边。

输出格式

共 nn 行,第 uu 行表示节点 uu 的答案。

输入输出样例 #1

输入 #1

5
1 2 2 2 3
1 2
1 3
2 4
2 5

输出 #1

2
2
2
2
3

说明

【样例解释】

节点 11 的子树包含全部 55 个节点,颜色 22 出现 33 次,3>5/23>5/2,故答案为 22。

节点 22 的子树为 {2,4,5}\{2,4,5\},颜色 22 出现 22 次,2>3/22>3/2,故答案为 22。

节点 3,4,53,4,5 的子树都只含自己,颜色出现 11 次,1>1/21>1/2,故答案为各自的颜色。

【数据范围】

数据范围

  • 对于 100%100\% 的数据,1≤n≤1051\le n\le 10^5,1≤ai≤1091\le a_i\le 10^9。