AT_abc477_d [ABC477D] Masking Tape
题目描述
有 $N$ 个格子横向排成一行,从左到右编号为格子 $1$ 到格子 $N$。颜色用小写英文字母表示。
初始时,所有格子的颜色都是 `a`,每个格子上都没有放置任何东西。
会给出 $Q$ 次查询,请按照给出的顺序处理。查询分为下面两种类型:
- `1 X`:如果格子 $X$ 没有放瓷砖,则放上瓷砖;如果已经放了,则取下瓷砖。
- `2 C`:把**所有没有放置瓷砖**的格子的颜色修改为 $C$。
处理完所有查询之后,请输出每个格子的颜色(无论格子上是否放有瓷砖都要输出)。
输入格式
输入从标准输入按如下形式给出:
> $N\ Q$
> $\mathrm{query}_1$
> $\vdots$
> $\mathrm{query}_Q$
每个查询 $\mathrm{query}_i\ (1 \le i \le Q)$ 的形式为:
> $1\ X$
或者
> $2\ C$
输出格式
将最终所有格子的颜色从左到右拼接成一个长度为 $N$ 的字符串并输出。
说明/提示
### 样例解释 #1
我们用字符串表示瓷砖状态:放瓷砖记为`#`,没有放记为`.`,从左往右拼接。
查询会让格子颜色、瓷砖状态发生如下变化。初始状态:颜色`aaa`,瓷砖状态`...`。
- 第 $1$ 个查询:格子 $2$ 放上瓷砖。颜色`aaa`,瓷砖状态`.#.`。
- 第 $2$ 个查询:所有没有瓷砖的格子颜色改为`b`。颜色`bab`,瓷砖状态`.#.`。
- 第 $3$ 个查询:格子 $1$ 放上瓷砖。颜色`bab`,瓷砖状态`##.`。
- 第 $4$ 个查询:取下格子 $2$ 的瓷砖。颜色`bab`,瓷砖状态`#..`。
- 第 $5$ 个查询:所有没有瓷砖的格子颜色改为`c`。颜色`bcc`,瓷砖状态`#..`。
所以输出`bcc`。格子 $1$ 仍然放着瓷砖,但依旧要输出该格子的颜色。
### 数据范围
- $1 \le N,Q \le 3\times 10^5$。
- 每个查询是类型 $1$ 或者类型 $2$。
- 类型 $1$ 查询中,$X$ 是满足 $1 \le X \le N$ 的整数。
- 类型 $2$ 查询中,$C$ 是单个小写英文字母。