問題一覧 > 通常問題

No.3755 Root for Your Route

レベル : / 実行時間制限 : 1ケース 3.000秒 / メモリ制限 : 1024 MB / 標準ジャッジ問題
タグ : (解説公開後に AC するまで非表示) / 解いたユーザー数 3
作問者 : marc2825 / テスター : siganai
お気に入りにしたユーザー ProblemId : 13786 / 自分の提出
問題文最終更新日: 2026-08-29 00:56:35
yukicoder contest 516 (順位表) の他の問題:

注意: PyPy などの比較的低速な言語でも AC 可能であることを確認していますが、 C++ などの高速な言語での提出を推奨します。

問題文

頂点 $1,2,\dots ,N$ の $N$ 頂点からなる木があり、頂点 $v$ には整数 $A_v$ が書かれています。( $A_v$ は負の場合もあります。)
また、 $i$ 番目の辺は頂点 $u_i,v_i$ を双方向に結んでいます。

Bob と Alice は、次の手順で頂点を選びます。

  1. Bob が頂点 $r$ を $1$ つ選ぶ。
  2. Alice が、頂点 $r$ を含む単純パス†の始点 $s$ と終点 $t$ を選び、 そのパスに沿って移動する。($s=t$ でもよい。)

ここで、 $s$ から $t$ への単純パスに沿って移動するとき、 Alice の $k$ 本目の辺の移動には $k$ 秒かかります。

Alice の得点を、「移動中に訪れた頂点(端点含む)に書かれた整数の総和から、 総移動時間を引いた値」とします。
Alice は得点を最大化するように $s,t$ を選び、 Bob は Alice の得点を最小化するように $r$ を選びます。
両者が最適に行動したときの Alice の得点を求めてください。


† 「単純パス」とは、辺で直接結ばれた頂点を順にたどってできる経路であり、 同じ頂点を $2$ 度以上通らないものをいいます。

制約

  • $2 \leq N \leq 10^5$
  • $-10^9 \leq A_v \leq 10^9$
  • $1 \leq u_i,v_i \leq N$
  • 与えられるグラフは木
  • 入力はすべて整数

入力

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

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

出力

両者が最適に行動したときの Alice の得点を一行で出力してください。

サンプル

サンプル1
入力
5
6 -1 8 -2 6
1 2
2 3
2 4
4 5
出力
5

Bob が頂点 $4$ を選んだとします。 このとき Alice は、頂点 $3$ から頂点 $5$ まで移動することで、 $ (8-1-2+6)-(1+2+3)=5 $ 点を得られます。 頂点 $4$ を通るどのようなパスを選んでも、これより大きな得点は得られません。
一方、Bob が頂点 $1,2,3$ のいずれかを選ぶと、 Alice は頂点 $1$ から頂点 $3$ まで移動することで $(6-1+8)-(1+2)=10$ 点を得られます。 また、Bob が頂点 $5$ を選ぶと、 Alice は $s=t=5$ とすることで $6$ 点を得られます。

したがって Bob は頂点 $4$ を選ぶのが最適であり、このときの答えは $5$ です。

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