atcoder#ARC125A. [ARC125A] Dial Up

[ARC125A] Dial Up

题目描述

すぬけくんは,0 0 1 1 からなる長さ N N の整数列 a=(a1,a2,,aN) a=(a_1,a_2,\cdots,a_N) と,空の整数列 b b を持っています. a a の初期状態は入力で与えられ,ai=Si a_i=S_i です.

すぬけくんは,以下の 3 3 種類の操作を好きな順番で好きな回数行えます.

  • a a を右シフトする.つまり,a a (aN,a1,a2,,aN1) (a_N,a_1,a_2,\cdots,a_{N-1}) で置き換える.
  • a a を左シフトする.つまり,a a (a2,a3,,aN,a1) (a_2,a_3,\cdots,a_N,a_1) で置き換える.
  • b b の末尾に現在の a1 a_1 の値を追加する.

長さ M M の整数列 T=(T1,T2,,TM) T=(T_1,T_2,\cdots,T_M) が与えられます. b b T T に一致させることができるか判定し,可能な場合は必要な操作回数の最小値を求めてください.

输入格式

入力は以下の形式で標準入力から与えられる.

N N M M S1 S_1 S2 S_2 \cdots SN S_N T1 T_1 T2 T_2 \cdots TM T_M

输出格式

b b T T に一致させることが不可能な場合,-1 を出力せよ. 可能な場合は,必要な操作回数の最小値を出力せよ.

题目大意

题目描述

有四个完全由 0011 构成的整数序列 s,t,a,bs,t,a,b,初始时 s=as=abb 为空。

每次操作时,你可以选择以下操作之一:

  • aa 的最后一个数放到开头;
  • aa 的第一个数放到末尾;
  • bb 的末尾插入 a1a_1

请输出能够让 b=tb=t 所需的最少操作次数。若无法达成目的,请输出 1-1

输入格式

第一行:sstt 的长度(2×105\le 2 \times 10^5

第二行:ss

第三行:tt

输出格式

若目标可实现输出最小操作次数,否则输出 1-1

3 4
0 0 1
0 1 1 0
6
1 1
0
1
-1

提示

制約

  • 1  N  2 × 105 1\ \leq\ N\ \leq\ 2\ \times\ 10^5
  • 1  M  2 × 105 1\ \leq\ M\ \leq\ 2\ \times\ 10^5
  • 0  Si  1 0\ \leq\ S_i\ \leq\ 1
  • 0  Ti  1 0\ \leq\ T_i\ \leq\ 1
  • 入力される値はすべて整数である

Sample Explanation 1

以下のように 6 6 回操作すればよいです. - b b の末尾に現在の a1 a_1 の値を追加する.b=(0) b=(0) となる. - a a を右シフトする.a=(1,0,0) a=(1,0,0) となる. - b b の末尾に現在の a1 a_1 の値を追加する.b=(0,1) b=(0,1) となる. - b b の末尾に現在の a1 a_1 の値を追加する.b=(0,1,1) b=(0,1,1) となる. - a a を右シフトする.a=(0,1,0) a=(0,1,0) となる. - b b の末尾に現在の a1 a_1 の値を追加する.b=(0,1,1,0) b=(0,1,1,0) となる.