神偷路邦四世(通常简称为路邦)接下了一项艰巨的任务:潜入世界上最大、最雄伟、技术最先进的城堡——卡里奥斯特罗城堡(The Castle of Gagliostro)的金库。城堡配备了最先进的技术,不言而喻,它拥有充分利用了人力和机器能力的顶级安保。然而,即使面对这样的挑战,路邦也毫不畏惧。他悄无声息地避开了城堡周围的守卫和监控摄像头,突破了无数陷阱,解开了许多谜题,最终抵达了金库。在那里,他黑入了监控摄像头,使其显示完全没有异常的画面,并用药物迷晕了所有保安。
挡在他面前的最后一个障碍是一个电子密码系统,只有输入正确的密码才能打开金库。最初,屏幕上显示了 $N$ 个介于 $0$ 到 $K$ 之间(含 $0$ 和 $K$)的非负整数,其中第 $i$ 个等于 $A_i$。密码也由 $N$ 个数字组成,每个数字同样是介于 $0$ 到 $K$ 之间(含 $0$ 和 $K$)的非负整数。凭借他过人的智慧和身手,路邦确定了密码中的第 $i$ 个数字对于每个 $1 \le i \le N$ 都是 $P_i$。在弄清楚密码后,路邦欣喜若狂,准备完成他的任务。然而,令他沮丧的是,输入密码的方式相当奇特且非常耗时,需要通过一些操作来缓慢但确实地改变屏幕上显示的数字。
假设当前屏幕上显示的第 $i$ 个数字是 $C_i$($1 \le i \le N$)。当对于所有 $1 \le i \le N$,都有 $C_i = P_i$ 时,路邦就可以打开金库。否则,路邦可以进行以下形式的操作:选择两个整数 $i, j$,满足 $1 \le i \le j \le N$,对于所有满足 $i \le l \le j$ 的整数 $l$,将 $C_l$ 变为 $(C_l + 1) \bmod (K + 1)$。换句话说,将 $C_l$ 替换为 $C_l + 1$ 除以 $K + 1$ 的余数。具体来说,$0$ 变为 $1$,$1$ 变为 $2$,……,$K - 1$ 变为 $K$,$K$ 变为 $0$。
仿佛这糟糕的密码输入系统还不够让人头疼,路邦还收到消息,他的宿敌钱形警官(Inspector Zenigada)正赶来将他一网打尽。为了尽快侵入金库并逃脱,路邦希望使用最少的操作次数将初始数字修改为密码并打开金库。你的任务是确定路邦所需的最少操作次数。
输入格式
输入第一行包含两个整数 $N$ 和 $K$。
第二行包含 $N$ 个整数 $A_1, A_2, \dots, A_N$,其中 $A_i$ 是屏幕上最初显示的第 $i$ 个数字。
第三行也是最后一行包含 $N$ 个整数 $P_1, P_2, \dots, P_N$,其中 $P_j$ 是密码中的第 $j$ 个数字。
输出格式
输出应在单行中包含一个整数,表示路邦将屏幕上的数字修改为密码所需的最少操作次数。
实现细节
由于某些子任务的输入长度可能非常大,建议使用带有快速输入例程的 C++ 来解决此问题。科学委员会没有使用 Java 或 Python 编写的能够完全解决此问题的程序。
附件中提供了包含快速输入/输出模板的 C++ 和 Java 源文件。强烈建议您使用这些模板。
如果您使用 Java 实现解决方案,请将文件命名为 Password.java,并将主函数放在 Password 类中。
子任务
每个测试点的最大运行时间为 1.0s,最大内存使用量为 1GiB。
对于所有测试用例,输入将满足以下范围:
- $1 \le N \le 3 \times 10^5$
- $0 \le K \le 10^9$
- $0 \le A[i], P[i] \le K$ 对于所有 $1 \le i \le N$
您的程序将在满足以下限制的输入实例上进行测试:
| 子任务 | 分值 | 附加限制 |
|---|---|---|
| 1 | 6 | $N \le 3$ |
| 2 | 5 | 对于所有 $1 \le i \le N - 1$,$A_i \le A_{i+1}$ 且 对于所有 $1 \le i \le N$,$P_i = 0$ |
| 3 | 9 | $K \le 1$ |
| 4 | 10 | $N, K \le 80$ |
| 5 | 13 | $N \le 400$ |
| 6 | 23 | $N \le 3000$ |
| 7 | 34 | 无附加限制 |
样例
输入样例 1
3 4 1 2 0 2 1 2
输出样例 1
4
说明 1
一种最优的操作序列是:选择 $(i, j) = (1, 3)$ 一次,$(2, 3)$ 一次,以及 $(2, 2)$ 两次。
输入样例 2
7 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0
输出样例 2
3
说明 2
一种最优的操作序列是:选择 $(i, j) = (1, 3)$ 一次,$(2, 6)$ 一次,以及 $(6, 7)$ 一次。
输入样例 3
7 9 1 5 3 4 8 3 2 7 4 8 3 2 3 1
输出样例 3
18