#abc232g. [abc232_g]Modulo Shortest Path

[abc232_g]Modulo Shortest Path

问题描述

给定一个有 NN 个顶点的有向图,顶点称为 Vertex 1, Vertex 2, ..., Vertex N。

对于每一对整数 1i,jN1 \leq i, j \leq Niji \neq j,从 Vertex i 到 Vertex j 有一条带权重的有向边,其权重为 (Ai+Bj)modM(A_i + B_j) \bmod M。(这里,xmodyx \bmod y 表示将 xx 除以 yy 的余数。)

除了上述边之外,没有其他边。

输出从 Vertex 1 到 Vertex N 的最短距离,即从 Vertex 1 到 Vertex N 的路径中边的总权重的最小可能值。

约束条件

  • 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

输出

输出从 Vertex 1 到 Vertex N 的路径中边的总权重的最小可能值。

示例输入 1

4 12
10 11 6 0
8 7 4 1

示例输出 1

3

下面,iji \rightarrow j 表示从 Vertex i 到 Vertex 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
这是从 Vertex 1 到 Vertex N 的路径中可能的最小总和。

示例输入 2

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

示例输出 2

462