神奇的炸鸡国
题号:NC231598
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述



lzc,gjh和cwy一边吃着炸鸡,一边旅行。这一天他们来到了一个神奇的国度——炸鸡国。

炸鸡国一共有n个人,这里个个都是人才,人人都会炸鸡,可以用a_i来描述第i个人的炸鸡水平。炸鸡国的统治结构是一颗树,通过n-1条边连通。当确定了国王(即确定了树的根)时,可以得到一颗确定的有根树。

f(u)u的子树中炸鸡水平大于等于a_u的总人数(不包含u本身)。

g(u)为以u为根时,的值。

请你输出g(1),g(2),g(3),...,g(n)

输入描述:

第一行包含一个正整数,表示炸鸡国的人数。

第二行包含n个正整数,第i个数为,表示第i个人的炸鸡水平。

接下来n-1行每行包含两个正整数uv,表示uv之间有一条边,保证无重边。

输出描述:

输出一行,包含n个整数,第i个整数表示g(i)
示例1

输入

复制
3
6 7 8
1 2
1 3

输出

复制
2 2 1