#S1. [ARC119B] Electric Board

[ARC119B] Electric Board

题目描述

现在,电光显示屏上显示着一个由 01 组成的长度为 NN 的字符串 SS

你可以进行任意次数如下操作。这里,电光显示屏上字符串的第 ii 个字符记作 SiS_i1iN1 \leq i \leq N)。

操作 选择一组整数 (l,r)(l, r)1l<rN1 \leq l < r \leq N),并满足以下两个条件之一,然后交换 SlS_lSrS_r

  • Sl=S_l = 0Sl+1==Sr=S_{l+1} = \cdots = S_r = 1
  • Sl==Sr1=S_l = \cdots = S_{r-1} = 1Sr=S_r = 0

请判断能否通过若干次操作将显示屏上的字符串变为 TT,如果可以,输出所需操作次数的最小值;如果不可以,输出 1-1

输入格式

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

NN SS TT

输出格式

如果无法将显示屏上的字符串变为 TT,请输出 1-1

如果可以,请输出所需操作次数的最小值。

输入输出样例 #1

输入 #1

7
1110110
1010111

输出 #1

2

输入输出样例 #2

输入 #2

20
11111000000000011111
11111000000000011111

输出 #2

0

输入输出样例 #3

输入 #3

6
111100
111000

输出 #3

-1

输入输出样例 #4

输入 #4

119
10101111011101001011111000111111101011110011010111111111111111010111111111111110111111110111110111101111111111110111011
11111111111111111111111111011111101011111011110111110010100101001110111011110111111111110010011111101111111101110111011

输出 #4

22

说明/提示

限制条件

  • 2N5000002 \leq N \leq 500000
  • SS 是由 01 组成的长度为 NN 的字符串
  • TT 是由 01 组成的长度为 NN 的字符串

样例解释 1

例如,可以如下进行操作,在 22 次操作后将显示屏上的字符串变为 1010111

  • 选择 (l,r)=(2,4)(l, r) = (2, 4) 进行操作。此时,显示屏上的字符串由 1110110 变为 1011110
  • 选择 (l,r)=(4,7)(l, r) = (4, 7) 进行操作。此时,显示屏上的字符串由 1011110 变为 1010111

样例解释 2

在进行任何操作之前,显示屏上的字符串已经是 TT,因此答案为 00

样例解释 3

无论如何操作,都无法将显示屏上的字符串变为 TT,此时请输出 1-1

由 ChatGPT 4.1 翻译