AT_abc401_d [ABC401D] Logical Filling
题目描述
[problemUrl]: https://atcoder.jp/contests/abc401/tasks/abc401_d
给定一个长度为 $N$ 的字符串 $S$,仅由 `.`、`o` 和 `?` 组成。将所有 `?` 分别替换为 `.` 或 `o` 后得到的字符串中,满足以下所有条件的字符串集合记为 $X$:
- `o` 的个数恰好为 $K$ 个
- `o` 不连续出现
保证 $X$ 不是空集。
请输出满足以下条件且长度为 $N$ 的字符串 $T$(其中 $T_i$ 表示 $T$ 的第 $i$ 个字符):
- 若 $X$ 中所有字符串的第 $i$ 个字符都是 `.`,则 $T_i =$ `.`
- 若 $X$ 中所有字符串的第 $i$ 个字符都是 `o`,则 $T_i =$ `o`
- 若 $X$ 中既存在第 $i$ 个字符为 `.` 的字符串,也存在第 $i$ 个字符为 `o` 的字符串,则 $T_i =$ `?`
输入格式
输入通过标准输入给出,格式如下:
> $N$ $K$
>
> $S$
输出格式
输出答案字符串 $T$。
说明/提示
### 约束条件
- $1 \leq N \leq 2 \times 10^5$
- $0 \leq K$
- $S$ 是仅由 `.`、`o` 和 `?` 组成的长度为 $N$ 的字符串
- $X$ 不是空集
- 输入的所有数值均为整数
### 样例解释 1
$X$ 包含两个字符串 `o.o.` 和 `o..o`。由于 $X$ 中所有字符串的第 1 个字符都是 `o`,所以 $T_1 =$ `o`。$X$ 中所有字符串的第 2 个字符都是 `.`,所以 $T_2 =$ `.`。$X$ 中既有第 3 个字符为 `.` 的字符串,也有为 `o` 的字符串,因此 $T_3 =$ `?`。
翻译由 DeepSeek V3 完成