atcoder#ARC144E. [ARC144E] GCD of Path Weights

[ARC144E] GCD of Path Weights

配点 : 800800

問題文

NN 頂点 MM 辺からなる有向グラフ GG が与えられます.頂点には 1,2,,N1, 2, \ldots, N の番号がついています.ii 番目の辺は aia_i から bib_i に向かう有向辺で,ai<bia_i < b_i が成り立っています.

正整数列 W=(W1,W2,,WN)W = (W_1, W_2, \ldots, W_N)美しさを,次が成り立つような正整数 xx の最大値として定義します.

  • GG における頂点 11 から頂点 NN への任意のパス (v1,,vk)(v_1, \ldots, v_k) (v1=1,vk=Nv_1 = 1, v_k = N) に対し,i=1kWvi\sum_{i=1}^k W_{v_i}xx の倍数である.

整数列 A=(A1,A2,,AN)A = (A_1, A_2, \ldots, A_N) が与えられます.正整数列 W=(W1,,WN)W = (W_1, \ldots, W_N) を,Ai1    Wi=AiA_i \neq -1 \implies W_i = A_i を満たすように定めるとき,その美しさとしてありうる最大値を求めてください.ただし,最大値が存在しない場合には -1 を出力してください.

制約

  • 2N3×1052\leq N\leq 3\times 10^5
  • 1M3×1051\leq M\leq 3\times 10^5
  • 1ai<biN1\leq a_i < b_i \leq N
  • iji\neq j ならば (ai,bi)(aj,bj)(a_i,b_i)\neq (a_j,b_j)
  • 与えられるグラフ GG において,頂点 11 から頂点 NN へのパスが存在する.
  • Ai=1A_i = -1 または 1Ai10121\leq A_i\leq 10^{12}

入力

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

NN MM

a1a_1 b1b_1

\vdots

aMa_M bMb_M

A1A_1 A2A_2 \ldots ANA_N

出力

正整数列 WW の美しさとしてありうる最大値を出力してください.ただし,最大値が存在しない場合には -1 を出力してください.

4 4
1 2
1 3
2 4
3 4
-1 3 7 -1
4

頂点 11 から頂点 NN へのパスは,(1,2,4)(1,2,4), (1,3,4)(1,3,4)22 個です. 例えば W=(5,3,7,8)W = (5, 3, 7, 8) の美しさは 44 となります.実際,W1+W2+W4=16W_1 + W_2 + W_4 = 16, W1+W3+W4=20W_1 + W_3 + W_4 = 20 はともに 44 の倍数です.

4 5
1 2
1 3
2 4
3 4
1 4
-1 3 7 -1
1

頂点 11 から頂点 NN へのパスは,(1,2,4)(1,2,4), (1,3,4)(1,3,4), (1,4)(1,4)33 個です. 例えば W=(5,3,7,8)W = (5, 3, 7, 8) の美しさは 11 となります.

4 4
1 2
1 3
2 4
3 4
3 -1 -1 7
-1

例えば W=(3,10100,10100,7)W = (3, 10^{100}, 10^{100}, 7) の美しさは 10100+1010^{100}+10 となります.WW の美しさをいくらでも大きくできるため,その最大値は存在しません.

5 5
1 3
3 5
2 3
3 4
1 4
2 -1 3 -1 4
9