AT_arc125_a [ARC125A] Dial Up
Description
[problemUrl]: https://atcoder.jp/contests/arc125/tasks/arc125_a
すぬけくんは,$ 0 $ と $ 1 $ からなる長さ $ N $ の整数列 $ a=(a_1,a_2,\cdots,a_N) $ と,空の整数列 $ b $ を持っています. $ a $ の初期状態は入力で与えられ,$ a_i=S_i $ です.
すぬけくんは,以下の $ 3 $ 種類の操作を好きな順番で好きな回数行えます.
- $ a $ を右シフトする.つまり,$ a $ を $ (a_N,a_1,a_2,\cdots,a_{N-1}) $ で置き換える.
- $ a $ を左シフトする.つまり,$ a $ を $ (a_2,a_3,\cdots,a_N,a_1) $ で置き換える.
- $ b $ の末尾に現在の $ a_1 $ の値を追加する.
長さ $ M $ の整数列 $ T=(T_1,T_2,\cdots,T_M) $ が与えられます. $ b $ を $ T $ に一致させることができるか判定し,可能な場合は必要な操作回数の最小値を求めてください.
Input Format
入力は以下の形式で標準入力から与えられる.
> $ N $ $ M $ $ S_1 $ $ S_2 $ $ \cdots $ $ S_N $ $ T_1 $ $ T_2 $ $ \cdots $ $ T_M $
Output Format
$ b $ を $ T $ に一致させることが不可能な場合,`-1` を出力せよ. 可能な場合は,必要な操作回数の最小値を出力せよ.
Explanation/Hint
### 制約
- $ 1\ \leq\ N\ \leq\ 2\ \times\ 10^5 $
- $ 1\ \leq\ M\ \leq\ 2\ \times\ 10^5 $
- $ 0\ \leq\ S_i\ \leq\ 1 $
- $ 0\ \leq\ T_i\ \leq\ 1 $
- 入力される値はすべて整数である
### Sample Explanation 1
以下のように $ 6 $ 回操作すればよいです. - $ b $ の末尾に現在の $ a_1 $ の値を追加する.$ b=(0) $ となる. - $ a $ を右シフトする.$ a=(1,0,0) $ となる. - $ b $ の末尾に現在の $ a_1 $ の値を追加する.$ b=(0,1) $ となる. - $ b $ の末尾に現在の $ a_1 $ の値を追加する.$ b=(0,1,1) $ となる. - $ a $ を右シフトする.$ a=(0,1,0) $ となる. - $ b $ の末尾に現在の $ a_1 $ の値を追加する.$ b=(0,1,1,0) $ となる.