atcoder#ABC214H. [ABC214H] Collecting

[ABC214H] Collecting

配点 : 600600

問題文

NN 頂点 MM 辺の有向グラフがあります。 頂点は 1,,N1, \dots, N と番号付けられており、i(1iM)i \, (1 \leq i \leq M) 番目の辺は頂点 AiA_i から頂点 BiB_i に向けて張られています。

はじめ、頂点 i(1iN)i \, ( 1 \leq i \leq N) には XiX_i 個の落とし物があります。これらの落とし物を KK 人で拾うことになりました。

KK 人は 11 人ずつグラフ上を移動します。各々は次のような行動をとります。

  • 頂点 11 から出発し、辺をたどって移動することを任意の有限回繰り返す。訪れた各頂点(頂点 11 も含む)について、落とし物がまだ拾われていなければ、全て拾う。

合計で最大何個の落とし物を拾うことができるか求めてください。

制約

  • 2N2×1052 \leq N \leq 2 \times 10^5
  • 1M2×1051 \leq M \leq 2 \times 10^5
  • 1K101 \leq K \leq 10
  • 1Ai,BiN1 \leq A_i, B_i \leq N
  • AiBiA_i \neq B_i
  • iji \neq j ならば、AiAjA_i \neq A_j または BiBjB_i \neq B_j
  • 1Xi1091 \leq X_i \leq 10^9
  • 入力は全て整数である。

入力

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

NN MM KK

A1A_1 B1B_1

\vdots

AMA_M BMB_M

X1X_1 \ldots XNX_N

出力

答えを出力せよ。

5 5 2
1 2
2 3
3 2
1 4
1 5
1 4 5 2 8
18

22 人がそれぞれ次のように行動することで、1818 個の落とし物を拾うことができます。

  • 11 人目は、頂点 12321 \rightarrow 2 \rightarrow 3 \rightarrow 2 の順に移動し、頂点 1,2,31, 2, 3 にある落とし物を拾う。
  • 22 人目は、頂点 151 \rightarrow 5 の順に移動し、頂点 55 にある落とし物を拾う。

1919 個以上の落とし物を拾うことはできないので、1818 を出力します。

3 1 10
2 3
1 100 100
1