#agc049b. [agc049_b]Flip Digits

[agc049_b]Flip Digits

题目描述

给定长度为 NN 的字符串 SSTT,它们由 01 组成。你可以对 SS 进行以下操作,任意次数:

  • 选择 ii2iN2 \leq i \leq N),使得 Si=S_i=1,将 SiS_i 替换为 0。另外,反转 Si1S_{i-1},即如果它现在是 0,则将其改为 1,反之亦然。

是否可以将 SS 完全变成 TT?如果可以,最少需要多少次操作?

约束条件

  • 1N5×1051 \leq N \leq 5 \times 10^5
  • SS 是一个由 01 组成的长度为 NN 的字符串。
  • TT 是一个由 01 组成的长度为 NN 的字符串。

输入格式

输入以以下格式从标准输入中给出:

NN

SS

TT

输出格式

如果可以将 SS 完全变成 TT,则打印最少需要的操作次数。否则,打印 1-1


示例输入1

3
001
100

示例输出1

2

我们可以按照以下方式操作:001 → (选择 i=3i=3)→ 010 → (选择 i=2i=2)→ 100


示例输入2

3
001
110

示例输出2

-1

示例输入3

5
10111
01010

示例输出3

5