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 翻译