AT_arc182_d [ARC182D] Increment Decrement Again
题目描述
我们称任意相邻的 $2$ 个元素都不相同的整数序列为**好序列**。
给定长度为 $N$ 的好序列 $A=(A_1,A_2,\dots,A_N)$ 和 $B=(B_1,B_2,\dots,B_N)$。其中,$A,B$ 的每个元素都在 $0$ 以上且小于 $M$。
你可以对 $A$ 进行任意次(包括 $0$ 次)如下操作:
- 选择 $1$ 到 $N$ 之间的一个整数 $i$,并执行以下两种操作之一:
- 令 $A_i\leftarrow (A_i+1)\bmod M$。
- 令 $A_i\leftarrow (A_i-1)\bmod M$。其中,$(-1)\bmod M=M-1$。
但不能进行使 $A$ 变成不是好序列的操作。
请判断是否可以将 $A$ 变为 $B$,如果可以,求出将 $A$ 变为 $B$ 所需的最小操作次数。
输入格式
输入通过标准输入按以下格式给出。
> $N$ $M$ $A_1$ $A_2$ $\dots$ $A_N$ $B_1$ $B_2$ $\dots$ $B_N$
输出格式
如果不可能,将 `-1` 输出。
如果可能,请输出最小操作次数的整数。
说明/提示
### 限制条件
- $2\leq N\leq 2\times 10^5$
- $2\leq M\leq 10^6$
- $0\leq A_i,B_i < M\ (1\leq i\leq N)$
- $A_i\ne A_{i+1}\ (1\leq i\leq N-1)$
- $B_i\ne B_{i+1}\ (1\leq i\leq N-1)$
- 输入均为整数
### 样例解释 1
如下操作可以在 $3$ 次内达成目标。
- 令 $A_1\leftarrow (A_1+1)\bmod M$,此时 $A=(3,0,1)$。
- 令 $A_2\leftarrow (A_2-1)\bmod M$,此时 $A=(3,8,1)$。
- 令 $A_1\leftarrow (A_1+1)\bmod M$,此时 $A=(4,8,1)$。
无法在 $2$ 次及以下操作内达成目标,因此答案为 $3$。
例如,第一次操作如果令 $A_2\leftarrow (A_2+1)\bmod M$,则 $A=(2,1,1)$,此时 $A$ 不是好序列,因此该操作不允许。
### 样例解释 2
一开始 $A$ 和 $B$ 就相等的情况也是可能的。
由 ChatGPT 4.1 翻译