#ZF1118. 交换
交换
Description
有下标从 开始,长度为 的两个序列 和 。
通过重复执行以下操作(可能为 次),确定能否使 和 相同。如果可能,请找到执行此操作所需的最小操作数。
选择一个整数 ,依次进行如下操作:
- 交换 和 ;
- 让 加 ;
- 让 减 。
Format
Input
第一行一个正整数 ,表示序列的长度。
第二行 个整数 ,表示需要进行操作的序列。
第三行 个整数 ,表示需要使操作后的序列与之相同的序列。
Output
如果无法使 和 相同,输出 。
否则输出一个整数,表示使 和 相同的最小操作数。
Samples
3
3 1 4
6 2 0
2
Note
我们可以在两次操作中使 和 相同:
首先,对 进行操作,让 ;
然后,对 进行操作,让 。
3
1 1 1
1 1 2
-1
Note
这种情况,不可能通过一定的操作使 和 相同。
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
Limitation
1s, 1024KiB for each test case.