#P13302. [2025年队测]咆哮的蜗牛

[2025年队测]咆哮的蜗牛

Description

在百字节森林的中央,生长着一棵奇特的树,住着会咆哮的蜗牛。这棵树共有 nn 个顶点,编号为 11nn,并且通过 n1n-1 条边连接,形成一棵连通图。最初,每个顶点上最多只有一只雄性蜗牛。

某一时刻,一只雌性蜗牛出现在树上的某个顶点,并开始咆哮。每当雌性蜗牛咆哮一次,有一只雄性蜗牛会沿着边向它靠近一步。但若目标顶点上已经有另一只雄性蜗牛,或该雄性蜗牛已与雌性蜗牛处于同一顶点,则它不能移动。当所有雄性蜗牛都无法再移动时,雌性蜗牛停止咆哮。

给定这棵树的结构以及每个顶点上是否有雄性蜗牛的信息,请对于每个顶点,计算若雌性蜗牛出现在该顶点时,最多能咆哮多少次。假设雄性蜗牛会以使咆哮次数最大的方式移动。

Format

Input

第一行包含一个整数 nn1n2×1051 \le n \le 2\times10^5),表示树中顶点的数量。

第二行包含一个长度为 nn 的字符串,每个字符为 01

  • 若第 ii 个字符为 1,表示顶点 ii 上有一只雄性蜗牛;
  • 若为 0,则该顶点上没有雄性蜗牛。

接下来 n1n-1 行,每行包含两个整数 ai,bia_i, b_i1ai,bin1 \le a_i, b_i \le n,且 aibia_i \ne b_i),表示顶点 aia_ibib_i 之间有一条边。

Output

输出 nn 个整数,第 ii 个整数表示如果雌性蜗牛出现在第 ii 个顶点上,她最多能咆哮的次数。

Samples

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

Note

下图展示了样例中的树结构。灰色的顶点表示有雄性蜗牛的位置。

档次编号 适用数据范围 得分
1 n100n ≤ 100 20
2 n1000n ≤ 1000
3 雄蜗牛数量10雄蜗牛数量 \leq 10
4 n2×105n \leq 2\times 10^5 40