TSG LIVE! 14 プログラミングコンテスト
コンテスト日時
2025/05/25 (Su) 16:00 - 17:40

H - K-th Value on Graph

Earlgray
2.5
s
1024
MB
500

問題文

頂点に $1$ から $N$ の番号がついた $N$ 頂点 $M$ 辺の単純無向グラフがあり、$i$ 番目の辺は頂点 $u_i$ と頂点 $v_i$ を結んでいます。また、頂点 $i$ $(1 \leq i \leq N)$ にははじめ整数 $A_i$ が書かれており、正整数 $K_i$ が定められています。
あなたは以下の操作を好きな回数($0$ 回でもよい)行うことができます。

  • $1 \leq i \leq N$ を満たす整数 $i$ を一つ選ぶ。頂点 $i$ に書き込まれた整数を、頂点 $i$ に隣接する頂点に書き込まれた整数のうち $K_i$ 番目に大きいものに書き換える。ここで、頂点 $i$ に隣接する頂点の個数は $K_i$ 以上であることが保証される。

各 $i$ $(1 \leq i \leq N)$ について、操作を好きな回数行った後の頂点 $i$ に書き込まれた整数の最大値を求めてください。

制約

  • 入力は全て整数
  • $1 \leq N, M \leq 2 \times 10^5$
  • $1 \leq u_i, v_i \leq N$
  • 与えられるグラフは単純
  • $1 \leq A_i \leq 10^9$
  • $1 \leq K_i$
  • $K_i$ は頂点 $i$ に隣接する頂点の個数以下

入力

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

$N\ M$
$u_1\ v_1$
$u_2\ v_2$
$\vdots$
$u_M\ v_M$
$A_1\ A_2\ \ldots\ A_N$
$K_1\ K_2\ \ldots\ K_N$

出力

$N$ 行出力せよ。$i$ 行目には操作を好きな回数行った後の頂点 $i$ に書き込まれた整数の最大値を出力せよ。

入力例 1
4 3 3 1 3 4 1 2 1 5 3 4 2 1 1 1
出力例 1
4 5 4 4

例えば、頂点 $1$ に書き込まれた整数は以下の順で操作を行うことで $4$ にすることができます。

  • 頂点 $3$ に対して操作をし、頂点 $3$ に書き込まれた整数を $3$ から $4$ に書き換える。
  • 頂点 $1$ に対して操作をし、頂点 $1$ に書き込まれた整数を $1$ から $4$ に書き換える。

頂点 $1$ に書き込まれた整数を $4$ より大きくすることはできないので $1$ 行目には $4$ と出力します。

入力例 2
7 15 7 6 1 4 4 2 1 3 3 5 2 3 6 1 5 2 7 1 2 7 7 3 1 2 2 6 4 6 1 5 2 7 11 7 7 6 4 6 3 2 2 2 4 2
出力例 2
6 7 11 7 7 6 7
提出
C++23 (g++ 12.2.0)