编程题
### 问题描述 给定一个长度为 $n$ 的数组 $arr$,你可以任意选择三个连续的数 $a,b,c$ ,如果满足: $$ ((a|b) + (a\And b)) \bmod 2 = c \bmod 2 $$ 那么你可以任意交换三者的顺序。 请问是否能把该数组变为另一个目标数组 $nums$ 。如果可以,那么他们转换的代价就是 $\sum_{i=0}^{i=n-1} |nums_i-arr_i|$ 。 ### 输入格式 第一行给出一个正整数 $n$ ,表示两个数组的长度。 接下来两行分别有 $n$ 个整数,分别表示数组 $arr$ 和数组 $nums$ 。 ### 输出格式 输出一个整数,表示最后的代价,如果不能转化输出 $-1$ 。 ### 样例输入 ```text 7 7 3 1 2 4 5 6 1 2 3 4 5 6 7 ``` ### 样例输出 ```text 14 ``` ### 评测数据规模 对于所有评测数据,$1\leq n \leq 10^5,1\le arr_i, nums_i \le 10 ^ 5$ 。
查看答案
赣ICP备20007335号-2