atcoder#ARC120C. [ARC120C] Swaps 2
[ARC120C] Swaps 2
题目描述
長さ の数列 $ A\ =\ (A_1,\ A_2,\ A_3,\ \dots,\ A_N),\ B\ =\ (B_1,\ B_2,\ B_3,\ \dots,\ B_N) $ が与えられます。
以下の操作を繰り返す ( 回も行わなくてもよい) ことで を に一致させることが可能かを判定してください。また、可能なら、 を に一致させるのに必要な最小の操作回数を求めてください。
- を満たす整数 を選び、以下のことを順に行う
- と を入れ替える
- に を足す
- から を引く
输入格式
入力は以下の形式で標準入力から与えられる。
输出格式
を に一致させることが不可能なら -1
を出力せよ。
可能なら、そのために必要な最小の操作回数を出力せよ。
题目大意
lyll 有一个长度为 的数列 ,zx 有一个长度为 的数列 。因为他们是 cp,所以 lyll 希望通过若干次操作之后使两数列相等,每次操作如下:
- 选定一个下标 ,先将 以及 交换,然后让 加一,最后让 减一。
求最少操作次数,否则输出 -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
提示
制約
- 入力に含まれる値は全て整数
Sample Explanation 1
以下のように操作すると、 回の操作で を に一致させることができます。 - まず、 として操作する。 となる。 - 次に、 として操作する。 となる。 回以下の操作で目的を達成することはできません。
Sample Explanation 2
この場合、 を に一致させることは不可能です。
Sample Explanation 3
回も操作をしなくても が に一致している可能性があります。