atcoder#ABC232G. [ABC232G] Modulo Shortest Path

[ABC232G] Modulo Shortest Path

配点 : 600600

問題文

NN 頂点の有向グラフがあります。NN 個の頂点はそれぞれ頂点 11、頂点 22\ldots、頂点 NN と呼ばれます。

1i,jN1 \leq i, j \leq N かつ iji \neq j を満たす整数の組 (i,j)(i, j) それぞれに対して、 頂点 ii を始点、頂点 jj を終点とする重み (Ai+Bj)modM(A_i + B_j) \bmod M の有向辺があります。 (ただし、xmodyx \bmod yxxyy で割ったあまりを表します。)

上記のほかに辺はありません。

頂点 11 から頂点 NN への最短距離、すなわち、頂点 11 から頂点 NN へのパス上の辺の重みの総和として考えられる最小値を出力してください。

制約

  • 2N2×1052 \leq N \leq 2 \times 10^5
  • 2M1092 \leq M \leq 10^9
  • 0Ai,Bj<M0 \leq A_i, B_j < M
  • 入力はすべて整数

入力

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

NN MM

A1A_1 A2A_2 \ldots ANA_N

B1B_1 B2B_2 \ldots BNB_N

出力

頂点 11 から頂点 NN へのパス上の辺の重みの総和として考えられる最小値を出力せよ。

4 12
10 11 6 0
8 7 4 1
3

以下では、頂点 ii を始点、頂点 jj を終点とする有向辺を iji \rightarrow j で表します。 11 \rightarrow 33 \rightarrow 22 \rightarrow 44 というパスを考えると、

  • 131 \rightarrow 3 の重みは、(A1+B3)modM=(10+4)mod12=2(A_1 + B_3) \bmod M = (10 + 4) \bmod 12 = 2 であり、
  • 323 \rightarrow 2 の重みは、(A3+B2)modM=(6+7)mod12=1(A_3 + B_2) \bmod M = (6 + 7) \bmod 12 = 1 であり、
  • 242 \rightarrow 4 の重みは、(A2+B4)modM=(11+1)mod12=0(A_2 + B_4) \bmod M = (11 + 1) \bmod 12 = 0 です。

よって、このパスの辺の重みの総和は 2+1+0=32 + 1 + 0 = 3 です。 これが頂点 11 から頂点 NN へのパス上の辺の重みの総和として考えられる最小値となります。

10 1000
785 934 671 520 794 168 586 667 411 332
363 763 40 425 524 311 139 875 548 198
462