atcoder#AGC049B. [AGC049B] Flip Digits

[AGC049B] Flip Digits

题目描述

01 からなる長さ N N の文字列 S S 及び T T が与えられます. あなたは,S S に以下の操作を好きな回数行うことができます.

  • Si= S_i= 1 となる i i (2  i  N 2\ \leq\ i\ \leq\ N ) を選ぶ. そして,Si S_i 0 で置き換える. さらに,Si1 S_{i-1} を今と異なる文字へ変更する.つまり,操作の直前で Si1 S_{i-1} 0 であれば 1 に,1 であれば 0 に変更する.

S S T T に一致させることは可能でしょうか? また可能な場合は,そのために必要な最小の操作回数はいくらでしょうか?

输入格式

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

N N S S T T

输出格式

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

题目大意

一个 NN 长度的 01SS,你可以进行若干次如下操作:

选一个不在首位的 11 位,反转这一位和前一位。

如果可能将 SSTT,输出 -1 或最小次数。

3
001
100
2
3
001
110
-1
5
10111
01010
5

提示

制約

  • 1  N  5 × 105 1\ \leq\ N\ \leq\ 5\ \times\ 10^5
  • S S 0,1 からなる長さ N N の文字列.
  • T T 0,1 からなる長さ N N の文字列.

Sample Explanation 1

001 → (i=3 i=3 で操作) → 010 → (i=2 i=2 で操作) → 100 とすればよいです.