AT_arc216_a [ARC216A] Reversi 3

Description

`0` と `1` からなる長さ $ N $ の文字列 $ A,B $ が与えられます. $ A $ の $ i $ 文字目を $ A_i $ とします. あなたは以下の操作を $ 0 $ 回以上好きな回数行うことができます. - $ A_{i-1}=A_{i+1} $ を満たす整数 $ i\ (2\leq i\leq N-1) $ を選び, $ A_i $ を反転する(`1` ならば `0` に,`0` ならば `1` にする). 操作を繰り返すことで $ A $ を $ B $ に一致させることができるか判定し,可能ならば一致させるために必要な操作回数の最小値を求めてください. $ T $ 個のテストケースが与えられるので,それぞれについて答えを求めてください.

Input Format

入力は以下の形式で標準入力から与えられる. > $ T $ $ \mathrm{case}_1 $ $ \mathrm{case}_2 $ $ \vdots $ $ \mathrm{case}_T $ 各テストケースは以下の形式で与えられる. > $ N $ $ A $ $ B $

Output Format

$ \mathrm{case}_1,\mathrm{case}_2,\ldots,\mathrm{case}_T $ に対する答えを以下の形式で出力せよ. $ A $ を $ B $ に一致させることができない場合,`-1` と出力せよ. 一致させることができる場合,必要な操作回数の最小値を出力せよ.

Explanation/Hint

### Sample Explanation 1 $ 1 $ つ目のテストケースについて,以下のように $ 2 $ 回の操作を行うことで $ A $ を $ B $ に一致させることができます. 1. $ i = 2 $ を選ぶ. $ A $ は `0101` となる. 2. $ i = 3 $ を選ぶ. $ A $ は `0111` となる. $ 2 $ つ目のテストケースについて,どのように操作しても $ A $ を $ B $ に一致させることはできません. ### Constraints - $ 1\leq T\leq 2\times 10^5 $ - $ 3\leq N\leq 10^6 $ - $ A,B $ は `0` と `1` からなる長さ $ N $ の文字列 - $ T,N $ は整数 - 全てのテストケースに対する $ N $ の総和は $ 10^6 $ 以下