atcoder#ARC120C. [ARC120C] Swaps 2

[ARC120C] Swaps 2

题目描述

長さ N N の数列 $ A\ =\ (A_1,\ A_2,\ A_3,\ \dots,\ A_N),\ B\ =\ (B_1,\ B_2,\ B_3,\ \dots,\ B_N) $ が与えられます。
以下の操作を繰り返す (1 1 回も行わなくてもよい) ことで A A B B に一致させることが可能かを判定してください。また、可能なら、A A B B に一致させるのに必要な最小の操作回数を求めてください。

  • 1  i < N 1\ \le\ i\ \lt\ N を満たす整数 i i を選び、以下のことを順に行う
    • Ai A_i Ai + 1 A_{i\ +\ 1} を入れ替える
    • Ai A_i 1 1 を足す
    • Ai + 1 A_{i\ +\ 1} から 1 1 を引く

输入格式

入力は以下の形式で標準入力から与えられる。

N N A1 A_1 A2 A_2 A3 A_3 \dots AN A_N B1 B_1 B2 B_2 B3 B_3 \dots BN B_N

输出格式

A A B B に一致させることが不可能なら -1 を出力せよ。
可能なら、そのために必要な最小の操作回数を出力せよ。

题目大意

lyll 有一个长度为 NN 的数列 AA,zx 有一个长度为 NN 的数列 BB。因为他们是 cp,所以 lyll 希望通过若干次操作之后使两数列相等,每次操作如下:

  • 选定一个下标 ii,先将 AiA_i 以及 Ai+1A_{i+1} 交换,然后让 AiA_i 加一,最后让 Ai+1A_{i+1} 减一。

求最少操作次数,否则输出 -1

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

提示

制約

  • 2  N  2 × 105 2\ \le\ N\ \le\ 2\ \times\ 10^5
  • 0  Ai  109 0\ \le\ A_i\ \le\ 10^9
  • 0  Bi  109 0\ \le\ B_i\ \le\ 10^9
  • 入力に含まれる値は全て整数

Sample Explanation 1

以下のように操作すると、2 2 回の操作で A A B B に一致させることができます。 - まず、i = 2 i\ =\ 2 として操作する。A = (3, 5, 0) A\ =\ (3,\ 5,\ 0) となる。 - 次に、i = 1 i\ =\ 1 として操作する。A = (6, 2, 0) A\ =\ (6,\ 2,\ 0) となる。 1 1 回以下の操作で目的を達成することはできません。

Sample Explanation 2

この場合、A A B B に一致させることは不可能です。

Sample Explanation 3

1 1 回も操作をしなくても A A B B に一致している可能性があります。