시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
3 초 | 1024 MB | 296 | 191 | 143 | 63.274% |
You are given two arrays of non-negative integers $a_1, a_2, \dots, a_N$ and $b_1, b_2, \dots, b_N$.
You can perform the following operation several times:
Expression $x \oplus y$ means bitwise xor of two numbers $x$ and $y$.
In binary representation, if the $i$-th digit of x and y is equal, then the $i$-th digit of $x \oplus y$ is $0$, and if not, it is $1$.
The given operation exists in all modern programming languages. For example, in C++ and Java, it is represented as $x\ ^{\wedge}\ y$.
You want to convert $\{a_i\}$ to $\{b_i\}$ by performing the minimum number of operations.
Find the minimum number of operations to convert $\{a_i\}$ to $\{b_i\}$.
If you cannot convert $\{a_i\}$ to $\{b_i\}$ with the given operation, print $-1$.
The first line contains an integer $N$, where $N$ denotes the length of the two sequences.
The second line contains $N$ space-separated non-negative integers $a_1, a_2, \dots, a_N$.
The third line contains $N$ space-separated non-negative integers $b_1, b_2, \dots, b_N$.
Print $-1$, if it is impossible to change the sequence $\{a_i\}$ to $\{b_i\}$.
Otherwise, print the minimum number of operations needed to change the sequence $\{a_i\}$ to $\{b_i\}$.
This subtask has an additional constraint:
This subtask has no additional constraints.
3 1 2 3 3 2 1
2
3 1 5 3 1 2 3
-1