#abc165f. [abc165_f]LIS on Tree

[abc165_f]LIS on Tree

問題文

NN 頂点の木があり、ii 番目の辺は頂点 uiu_i と頂点 viv_i を結んでいます。 また、頂点 ii には整数 aia_i が書かれています。 11 以上 NN 以下のすべての整数 kk に対して、次の問題を解いてください。

  • 頂点 11 から頂点 kk までの最短パス上の頂点に書かれている整数を頂点 11 に近い方から順に並べた数列の最長増加部分列の長さはいくつか。

なお、長さ LL の数列 AA の最長増加部分列とは、1leqi1<i2<...<iMleqL1 \\leq i_1 < i_2 < ... < i_M \\leq L かつ Ai1<Ai2<...<AiMA_{i_1} < A_{i_2} < ... < A_{i_M} を満たす部分列 Ai1,Ai2,...,AiMA_{i_1} , A_{i_2} , ... , A_{i_M} の中で 最も MM が大きいものをいいます。

制約

  • 2leqNleq2times1052 \\leq N \\leq 2 \\times 10^5
  • 1leqaileq1091 \\leq a_i \\leq 10^9
  • 1lequi,vileqN1 \\leq u_i , v_i \\leq N
  • uineqviu_i \\neq v_i
  • 与えられるグラフは木である。
  • 入力はすべて整数である。

入力

入力は以下の形式で標準入力から与えられる。

NN a1a_1 a2a_2 ...... aNa_N u1u_1 v1v_1 u2u_2 v2v_2 :: uN1u_{N-1} vN1v_{N-1}

出力

NN 行出力せよ。kk 行目には、頂点 11 から頂点 kk までの最短パス上の頂点に書かれている整数を頂点 11 に近い方から順に並べた数列の最長増加部分列の長さを出力せよ。


入力例 1

10
1 2 5 3 4 6 7 3 2 4
1 2
2 3
3 4
4 5
3 6
6 7
1 8
8 9
9 10

出力例 1

1
2
3
3
4
4
5
2
2
3

例えば、頂点 11 から頂点 55 までの最短パス上の頂点に書かれている整数を頂点 11 に近い方から順に並べた数列 AA1,2,5,3,41,2,5,3,4 です。この数列の最長増加部分列は A1A_1 , A2A_2 , A4A_4 , A5A_5 であり、この長さは 44 です。