問題一覧 > 通常問題

No.1154 シュークリームゲーム(Hard)

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 7
作問者 : Kiri8128Kiri8128 / テスター : noiminoimi
1 ProblemId : 4624 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2020-08-06 23:09:38

問題文

茶碗蒸しくんときりくんはシュークリームが大好きなので、2人でシュークリームゲームをしようとしています。
シュークリームゲームは、木の上で行うゲームです。 木は $N$ 頂点、 $N-1$ 辺からなります。頂点には $1$ から $N$ の番号が付いていて、 $i\ (1\le i \le N-1)$ 番目の辺は頂点 $u_i$ と頂点 $v_i$ を結んでいます。 頂点 $i\ (1\le i\le N)$ にはシュークリームが $A_i$ 個置かれています。
茶碗蒸しくんから始めて、すべての頂点が選ばれるまで、交互に次の操作を行います。

  • 既に選ばれた頂点と隣接するまだ選ばれていない頂点を1つ選ぶ(ただし、茶碗蒸しくんの最初のターンは頂点1を選ぶ)
  • 選んだ頂点に置かれているシュークリームをすべて食べる
最終的に茶碗蒸しくんが食べたシュークリームを $X$ 個、きりくんが食べたシュークリームを $Y$ 個とします。 茶碗蒸しくんは $X-Y$ を最大化したいですが、きりくんは $X-Y$ を最小化したいです。 お互いが最善を尽くした場合、 $X-Y$ はいくつになるでしょうか。

入力

$N$
$A_1\ A_2\ \cdots A_N$
$u_1\ v_1$
$u_2\ v_2$
$\vdots$
$u_{N-1}\ v_{N-1}$

入力はすべて整数
$1\le N \le 1000$
$1\le A_i\le 10^9\ (1\le i\le N)$
$1\le u_i,\ v_i\le N\ (1\le i\le N-1)$
$u_i\neq v_i\ (1\le i\le N-1)$
与えられるグラフは木であることが保証される。

出力

答えを表す整数を1行に出力してください。
最後に改行してください。

サンプル

サンプル1
入力
4
60 20 50 40
1 2
1 3
3 4
出力
30

茶碗蒸しくんは、最初のターンでは頂点1を選ぶしかありません。頂点1にある60個のシュークリームを食べます。
次にきりくんは、頂点2または頂点3を選べますが、頂点3を選ぶのが最善です。頂点3にある50個のシュークリームを食べます。
次に茶碗蒸しくんは、頂点2または頂点4を選べますが、頂点4を選ぶのが最善です。頂点4にある40個のシュークリームを食べます。
最後にきりくんが、頂点2にある20個のシュークリームを食べます。
茶碗蒸しくんが食べたシュークリームは $60+40=100$ 個、きりくんが食べたシュークリームは $50+20=70$ 個なので、 $30$ ( $=100-70$ )を出力します。

サンプル2
入力
4
60 20 50 100
1 2
1 3
3 4
出力
-10

サンプル1と比べて、頂点4にあるシュークリームの個数だけ変わっています。
この場合、きりくんの最初のターンでは頂点2を選ぶのが最善です。

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。