#2965. 相邻和(困难版)(Adjacent Sums (hard))

相邻和(困难版)(Adjacent Sums (hard))

相邻和(困难版)(Adjacent Sums (hard))

题目描述

(与 C 题题面相同,仅约束中 M 的范围不同。)

给定由 0 以上 M−1 以下的整数构成的整数列 A=(A₁,A₂,…,A_N)、B=(B₁,B₂,…,B_{N−1})。A、B 的长度分别为 N、N−1。

可以对 A 进行任意次以下操作:

  • 选择一个满足 1≤i≤N 的整数 i,将 A_i 加 1。

求使以下条件成立所需的最小操作次数(可以证明在本题约束下条件一定能满足):

  • 对 i=1,2,…,N−1,A_i+A_{i+1} 除以 M 的余数等于 B_i。

本题约束下 M 为 3 到 10⁹ 的整数。

输入格式

N M
A1 A2 … AN
B1 B2 … BN−1

输出格式

一行输出答案。

样例输入 #1

3 10
4 6 7
5 5

样例输出 #1

5

样例输入 #2

2 3
1 2
2

样例输出 #2

2

样例输入 #3

10 10
0 1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 1

样例输出 #3

40

数据范围

  • 2 ≤ N ≤ 2×10⁵
  • 3 ≤ M ≤ 10⁹
  • 0 ≤ A_i ≤ M−1
  • 0 ≤ B_i ≤ M−1
  • 输入值均为整数

知识点与难度

本题涉及的知识点从属于 GESP 5级,难度等级:⭐⭐⭐


测试点分布

Subtask 分值 测试点编号 说明
0 10 1~2 样例
1 20 3~8 小规模 N≤10 / 特殊: 全0 / 特殊: 全1 / 特殊: 单调
2 15 9~11 Hack: N=2 / Hack: 大M边界 / Hack: 需增a1
3 30 12~20 中规模 N≈1e3 / 大规模 N≈2e5 压力
4 25 21~25 随机 N=1~2e5 回归