#ABC477D. 遮蔽胶带 / Masking Tape

遮蔽胶带 / Masking Tape

题目描述

有 NN 个方格从左到右排成一行,从左到右依次编号为方格 11 到方格 NN。颜色用英文小写字母表示。

初始时,每个方格的颜色都是 a,且每个方格上都没有放置任何东西。

给定 QQ 个询问,请按给定的顺序依次处理。每个询问是以下两种类型之一:

  • 1 X:若方格 XX 上没有放置胶带,则在它上面放置一块胶带;若上面已经放置了胶带,则把胶带取走。
  • 2 C:把所有没有放置胶带的方格的颜色改为 CC。

请求出处理完所有询问后每个方格的颜色(无论该方格上是否放置了胶带)。

输入格式

输入按以下格式从标准输入读入:

  • NN QQ
  • query1\mathrm{query}_1
  • ⋮\vdots
  • queryQ\mathrm{query}_Q

每个询问 queryi (1≤i≤Q)\mathrm{query}_i ~ (1 \le i \le Q) 以如下形式给出:

  • 1 X

或者:

  • 2 C

输出格式

把每个方格最终的颜色从左到右拼接成一个长度为 NN 的字符串,并输出该字符串。

3 5
1 2
2 b
1 1
1 2
2 c
bcc

对于胶带的状态,我们用从左到右依次拼接得到的字符串来表示:若方格上放置了胶带则为 #,否则为 .。

这些询问对方格颜色和胶带状态的改变如下。初始状态为 aaa 和 ...。

  • 处理第 11 个询问会在方格 22 上放置一块胶带。状态变为 aaa 和 .#.。
  • 处理第 22 个询问会把没有放置胶带的方格的颜色改为 b。状态变为 bab 和 .#.。
  • 处理第 33 个询问会在方格 11 上放置一块胶带。状态变为 bab 和 ##.。
  • 处理第 44 个询问会把方格 22 上的胶带取走。状态变为 bab 和 #..。
  • 处理第 55 个询问会把没有放置胶带的方格的颜色改为 c。状态变为 bcc 和 #..。

因此输出 bcc。方格 11 上仍然放置着胶带,但即使如此也要输出该方格的颜色。

10 15
1 8
2 m
1 3
1 10
2 q
1 6
1 10
2 d
1 1
2 z
1 9
2 f
1 4
1 7
2 k
dkmfkqfazk

数据范围

  • 1≤N,Q≤3×1051 \le N,Q \le 3\times 10^5

  • 每个询问都是类型 11 或类型 22。

  • 在类型 11 的询问中,XX 是满足 1≤X≤N1 \le X \le N 的整数。

  • 在类型 22 的询问中,CC 是单个英文小写字母。

  • 来源:AtCoder ABC 477 D

子任务设置

  • 子任务 1(30 分):N,Q≤2000N,Q \le 2000。
  • 子任务 2(70 分):无特殊限制。