AT_arc207_e [ARC207E] Erase and Append
Description
`0` と `1` のみからなる長さ $ N $ の文字列 $ s,t $ が与えられます。 以下の操作を $ 0 $ 回以上 $ N+1 $ 回以下行うことで $ s $ を $ t $ と一致させることが可能かどうかを判定し、可能な場合は操作列の一例を示してください。
操作:以下を順番に行う
1. $ 1 \le a,b \le N $ かつ $ |a-b|=1 $ を満たす整数 $ a,b $ を選ぶ
2. $ s $ の先頭から $ a $ 番目の文字を $ s $ の末尾に追加する
3. $ s $ の先頭から $ b $ 番目の文字を取り除き、残りの文字を元の順序を保って連結する
$ T $ 個のテストケースが与えられるので、それぞれについて答えを求めてください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ T $ $ \text{case}_1 $ $ \text{case}_2 $ $ \vdots $ $ \text{case}_T $
各テストケースは以下の形式で与えられる。
> $ N $ $ s $ $ t $
Output Format
与えられたテストケースに対し与えられた順に答えを出力せよ。 操作を $ 0 $ 回以上 $ N+1 $ 回以下行うことで $ s $ を $ t $ と一致させることが不可能ならば `-1` を出力せよ。 可能ならば、はじめに操作回数 $ K $ を出力し、続く $ K $ 行のうち $ j $ 行目には $ j $ 回目の操作で選ぶ $ 2 $ つの整数 $ a_j,b_j $ を空白区切りで出力せよ。
Explanation/Hint
### Sample Explanation 1
$ 1 $ 番目のテストケースにおいて $ s $ は `00101`, $ t $ は `00010` です。
- $ a,b $ として $ 2,3 $ を選び、 $ 2 $ 番目の文字である `0` を $ s $ の末尾に追加した後、 $ 3 $ 番目の文字を取り除くことで $ s $ と $ t $ を一致させることができます。
- 操作で選ぶ整数 $ a,b $ について $ |a-b|=1 $ である必要がある点に注意してください。
$ 2 $ 番目のテストケースにおいて、 $ 0 $ 回の操作により $ s $ と $ t $ を一致させることができます。
$ 3 $ 番目のテストケースにおいて、どのように操作を行っても $ s $ と $ t $ は一致させることはできません。
### Constraints
- $ 1 \le T \le 10^{5} $
- $ 2 \le N \le 2 \times 10^{5} $
- $ s,t $ は長さ $ N $ の `0` と `1` のみからなる文字列
- 全てのテストケースにおける $ N $ の総和は $ 2 \times 10^{5} $ 以下