配点 : 600 点
問題文
N 頂点の有向グラフがあります。N 個の頂点はそれぞれ頂点 1、頂点 2、…、頂点 N と呼ばれます。
1≤i,j≤N かつ i=j を満たす整数の組 (i,j) それぞれに対して、
頂点 i を始点、頂点 j を終点とする重み (Ai+Bj)modM の有向辺があります。
(ただし、xmody は x を y で割ったあまりを表します。)
上記のほかに辺はありません。
頂点 1 から頂点 N への最短距離、すなわち、頂点 1 から頂点 N へのパス上の辺の重みの総和として考えられる最小値を出力してください。
制約
- 2≤N≤2×105
- 2≤M≤109
- 0≤Ai,Bj<M
- 入力はすべて整数
入力
入力は以下の形式で標準入力から与えられる。
N M
A1 A2 … AN
B1 B2 … BN
出力
頂点 1 から頂点 N へのパス上の辺の重みの総和として考えられる最小値を出力せよ。
4 12
10 11 6 0
8 7 4 1
3
以下では、頂点 i を始点、頂点 j を終点とする有向辺を i→j で表します。
1 → 3 → 2 → 4 というパスを考えると、
- 辺 1→3 の重みは、(A1+B3)modM=(10+4)mod12=2 であり、
- 辺 3→2 の重みは、(A3+B2)modM=(6+7)mod12=1 であり、
- 辺 2→4 の重みは、(A2+B4)modM=(11+1)mod12=0 です。
よって、このパスの辺の重みの総和は 2+1+0=3 です。
これが頂点 1 から頂点 N へのパス上の辺の重みの総和として考えられる最小値となります。
10 1000
785 934 671 520 794 168 586 667 411 332
363 763 40 425 524 311 139 875 548 198
462