AT_arc120_c [ARC120C] Swaps 2
题目描述
给定两个长度为 $N$ 的数列 $A = (A_1, A_2, A_3, \dots, A_N)$ 和 $B = (B_1, B_2, B_3, \dots, B_N)$。
请判断是否可以通过重复以下操作(可以一次也不做)将 $A$ 变为 $B$。如果可以,请求出将 $A$ 变为 $B$ 所需的最小操作次数。
- 选择满足 $1 \le i < N$ 的整数 $i$,依次进行以下操作:
- 交换 $A_i$ 和 $A_{i+1}$ 的值;
- 将 $A_i$ 加 $1$;
- 将 $A_{i+1}$ 减 $1$。
输入格式
输入通过标准输入给出,格式如下:
> $N$ $A_1$ $A_2$ $A_3$ $\dots$ $A_N$ $B_1$ $B_2$ $B_3$ $\dots$ $B_N$
输出格式
如果无法将 $A$ 变为 $B$,输出 `-1`。
如果可以,输出所需的最小操作次数。
说明/提示
## 限制条件
- $2 \le N \le 2 \times 10^5$
- $0 \le A_i \le 10^9$
- $0 \le B_i \le 10^9$
- 输入中的所有值均为整数。
## 样例解释 1
如下操作可以在 $2$ 次内将 $A$ 变为 $B$:
- 首先,选择 $i=2$ 进行操作。此时 $A = (3, 5, 0)$。
- 然后,选择 $i=1$ 进行操作。此时 $A = (6, 2, 0)$。
无法在 $1$ 次或更少的操作内达成目标。
## 样例解释 2
在这种情况下,无法将 $A$ 变为 $B$。
## 样例解释 3
有可能在不进行任何操作的情况下,$A$ 已经与 $B$ 相同。
由 ChatGPT 4.1 翻译