AT_agc069_c [AGC069C] AB*A Changing
题目描述
现有两个长度为 $N$ 的字符串 $S$ 和 $T$,它们都只由字符 `A` 和 `B` 组成。我们用 $s_i$ 来表示字符串 $S$ 的第 $i$ 个字符。
对于字符串 $S$,你可以反复进行以下操作不限次数:
- 选择两个整数 $(i, j)$,要求满足:
- $1 \leq i < j \leq N$
- $s_i = s_j = \text{A}$
- $s_{i+1}, s_{i+2}, \ldots, s_{j-1}$ 都为 `B`
- 然后,将 $s_i, s_{i+1}, \ldots, s_j$ 这段字符同时替换为它们相反的字符,即 `A` 换成 `B`,`B` 换成 `A`。
你的任务是判断,通过这种操作,能否将 $S$ 变成 $T$,如果可以,求出最小操作次数;如果不可以,输出 `-1`。
输入格式
输入从标准输入中提供,格式为:
> $N$ $S$ $T$
输出格式
如果可以通过操作将字符串 $S$ 变为 $T$,输出最少需要的操作次数;如果无法做到,输出 `-1`。
说明/提示
- $1 \leq N \leq 200,000$
- $S, T$ 均为由 `A` 和 `B` 组成的长度为 $N$ 的字符串
### 示例说明
#### 示例 1
通过下面的操作,可以用 2 次将 $S$ 变为 $T$:
1. 选择 $(i, j) = (2, 3)$,此时 $S$ 变为 `ABBBA`。
2. 选择 $(i, j) = (1, 5)$,此时 $S$ 变为 `BAAAB`。
所以,最少操作次数为 2。
#### 示例 2
不能通过任何操作将 $S$ 变为 $T$,因而答案是 `-1`。注意:要求 $i < j$。
#### 示例 3
此时 $S$ 和 $T$ 本来就相同,不需任何操作。
**本翻译由 AI 自动生成**