#ABC232G. Modulo Shortest Path

Modulo Shortest Path

Modulo Shortest Path

  • 时间限制:3 秒
  • 内存限制:512 MiB

题目描述

有一个包含 NN 个顶点的有向图,顶点编号为 11NN

对于每一组满足 1i,jN1\leq i,j\leq Niji\neq j 的整数对 (i,j)(i,j),存在一条从顶点 ii 指向顶点 jj 的有向边,其权值为 (Ai+Bj)modM(A_i+B_j)\bmod M。除此之外图中没有其他边。

请输出从顶点 11 到顶点 NN 的最短距离,即路径上所有边权之和的最小值。

输入格式

输入以如下格式给出:

NN MM

A1A_1 A2A_2 \ldots ANA_N

B1B_1 B2B_2 \ldots BNB_N

输出格式

输出一个整数,表示从顶点 11 到顶点 NN 的最短距离。

样例输入 1

4 12
10 11 6 0
8 7 4 1

样例输出 1

3

样例输入 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

样例解释

对于样例 1,路径 13241\to3\to2\to4 的三条边权分别是 2,1,02,1,0,总和为 33,且不存在更短路径。

数据范围

  • 2N2×1052\leq N\leq 2\times 10^5
  • 2M1092\leq M\leq 10^9
  • 0Ai,Bi<M0\leq A_i,B_i<M
  • 所有输入值均为整数。
子任务编号 分值 特殊限制
1 25 对任意 iijj 均有 Ai+Bj<MA_i+B_j<M
2 35 N2000N\leq2000
3 40 无特殊限制