AT_arc119_b [ARC119B] Electric Board
题目描述
现在,电光显示屏上显示着一个由 `0` 和 `1` 组成的长度为 $N$ 的字符串 $S$。
你可以进行任意次数如下操作。这里,电光显示屏上字符串的第 $i$ 个字符记作 $S_i$($1 \leq i \leq N$)。
> **操作** 选择一组整数 $(l, r)$($1 \leq l < r \leq N$),并满足以下两个条件之一,然后交换 $S_l$ 和 $S_r$:
>
> - $S_l = $ `0` 且 $S_{l+1} = \cdots = S_r = $ `1`。
> - $S_l = \cdots = S_{r-1} = $ `1` 且 $S_r = $ `0`。
请判断能否通过若干次操作将显示屏上的字符串变为 $T$,如果可以,输出所需操作次数的最小值;如果不可以,输出 $-1$。
输入格式
输入以如下格式从标准输入给出:
> $N$ $S$ $T$
输出格式
如果无法将显示屏上的字符串变为 $T$,请输出 $-1$。
如果可以,请输出所需操作次数的最小值。
说明/提示
### 限制条件
- $2 \leq N \leq 500000$
- $S$ 是由 `0` 和 `1` 组成的长度为 $N$ 的字符串
- $T$ 是由 `0` 和 `1` 组成的长度为 $N$ 的字符串
### 样例解释 1
例如,可以如下进行操作,在 $2$ 次操作后将显示屏上的字符串变为 `1010111`。
- 选择 $(l, r) = (2, 4)$ 进行操作。此时,显示屏上的字符串由 `1110110` 变为 `1011110`。
- 选择 $(l, r) = (4, 7)$ 进行操作。此时,显示屏上的字符串由 `1011110` 变为 `1010111`。
### 样例解释 2
在进行任何操作之前,显示屏上的字符串已经是 $T$,因此答案为 $0$。
### 样例解释 3
无论如何操作,都无法将显示屏上的字符串变为 $T$,此时请输出 $-1$。
由 ChatGPT 4.1 翻译