#ARC119B. [ARC119B] Electric Board

[ARC119B] Electric Board

题目描述

いま、電光掲示板に 01 から成る長さ N N の文字列 S S が表示されています。

あなたは次の操作を何回でも行うことができます。なお、ここでは電光掲示板に表示されている文字列の i i (1  i  N) (1\ \leq\ i\ \leq\ N) 文字目を Si S_i と表します。

操作 整数 (l, r) (l,\ r) (1  l < r  N) (1\ \leq\ l\ <\ r\ \leq\ N) であって、次の条件のうちいずれかを満たすものを 1 1 組選び、Sl S_l Sr S_r を入れ替える。

  • Sl= S_l= 0 かつ Sl+1==Sr= S_{l+1}=\cdots=S_r= 1 を満たす。
  • Sl==Sr1= S_{l}=\cdots=S_{r-1}= 1 かつ Sr= S_r= 0 を満たす。

電光掲示板に表示されている文字列を T T に一致させることができるか判定し、可能な場合は操作回数として考えられる最小の値を求めてください。

输入格式

入力は以下の形式で標準入力から与えられます。

N N S S T T

输出格式

電光掲示板に表示されている文字列を T T にすることが不可能な場合は、-1 を出力してください。

可能な場合は、操作回数として考えられる最小の値を出力してください。

题目大意

给定两个长度为N \textrm N 的0/1串S \textrm S T \textrm T ,每次对第一个串:选一个0移动到相邻的一段1之前或之后或中间,求最少经过多少次能使两个串相同。

输入

三行,分别对应N,S,T \textrm N,S,T

输出

一行,最小的操作次数,若无法使两个串相同则输出-1 \textrm -1 .

7
1110110
1010111
2
20
11111000000000011111
11111000000000011111
0
6
111100
111000
-1
119
10101111011101001011111000111111101011110011010111111111111111010111111111111110111111110111110111101111111111110111011
11111111111111111111111111011111101011111011110111110010100101001110111011110111111111110010011111101111111101110111011
22

提示

制約

  • 2  N  500000 2\ \leq\ N\ \leq\ 500000
  • S S 01 からなる長さ N N の文字列である
  • T T 01 からなる長さ N N の文字列である

Sample Explanation 1

例えば以下のように操作を行えば、2 2 回の操作で電光掲示板に表示されている文字列を 1010111 にすることができます。 - (l, r) = (2, 4) (l,\ r)\ =\ (2,\ 4) を選んで操作を行う。そのとき、電光掲示板の文字列は 1110110 から 1011110 に変化する。 - (l, r) = (4, 7) (l,\ r)\ =\ (4,\ 7) を選んで操作を行う。そのとき、電光掲示板の文字列は 1011110 から 1010111 に変化する。

Sample Explanation 2

操作を行う前の時点で、電光掲示板に表示されている文字列が T T であるため、答えは 0 0 となります。

Sample Explanation 3

どのように操作を行っても、電光掲示板に文字列 T T を表示させることが不可能な場合は、-1 と出力してください。