AT_arc194_e [ARC194E] Swap 0^X and 1^Y
题目描述
给定由 `0` 和 `1` 组成且长度为 $N$ 的两个字符串 $S$ 和 $T$,以及正整数 $X$ 和 $Y$。对于 $i = 1, 2, \ldots, N$,用 $S_i$ 表示 $S$ 的第 $i$ 个字符。
请判断是否可以通过任意次(包括零次)执行以下操作 A 或操作 B,使得 $S$ 变为 $T$:
- (操作 A)选择一个满足 $1 \leq i \leq N - (X + Y) + 1$ 的整数 $i$,且满足 $S_i = S_{i+1} = \cdots = S_{i+X-1} =$ `0` 以及 $S_{i+X} = S_{i+X+1} = \cdots = S_{i+X+Y-1} =$ `1`。随后,将 $S_i, S_{i+1}, \ldots, S_{i+Y-1}$ 全部改为 `1`,并将 $S_{i+Y}, S_{i+Y+1}, \ldots, S_{i+Y+X-1}$ 全部改为 `0`。
- (操作 B)选择一个满足 $1 \leq i \leq N - (X + Y) + 1$ 的整数 $i$,且满足 $S_i = S_{i+1} = \cdots = S_{i+Y-1} =$ `1` 以及 $S_{i+Y} = S_{i+Y+1} = \cdots = S_{i+Y+X-1} =$ `0`。随后,将 $S_i, S_{i+1}, \ldots, S_{i+X-1}$ 全部改为 `0`,并将 $S_{i+X}, S_{i+X+1}, \ldots, S_{i+X+Y-1}$ 全部改为 `1`。
输入格式
输入通过标准输入给出,格式如下:
> $N$ $X$ $Y$ $S$ $T$
输出格式
如果可以将 $S$ 变为 $T$,输出 `Yes`;否则输出 `No`。
说明/提示
### 约束条件
- $1 \leq N \leq 5 \times 10^5$
- $1 \leq X, Y \leq N$
- $S$ 和 $T$ 是由 `0` 和 `1` 组成的长度为 $N$ 的字符串
- 输入均为整数
### 样例解释 1
通过以下步骤可以将 $S$ 变为 $T$:
- 选择 $i = 2$ 执行操作 A,此时 $S =$ `010011001`。
- 选择 $i = 6$ 执行操作 B,此时 $S =$ `010010011`。
- 选择 $i = 3$ 执行操作 A,此时 $S =$ `011000011`。
因此输出 `Yes`。
### 样例解释 2
无法将 $S$ 变为 $T$,因此输出 `No`。
翻译由 DeepSeek R1 完成