#wall. 公告墙

公告墙

题目描述

学校的公告墙是一块 HHWW 列的格子板,初始时每个格子上都写着大写字母 A。用 (i,j)(i, j) 表示从上往下第 ii 行、从左往右第 jj 列的格子。

宣传委员依次贴了 QQ 张海报。第 ii 张海报 (1iQ)(1 \le i \le Q) 的贴法是:把左上角为 (1,1)(1,1)、右下角为 (Ri,Ci)(R_i, C_i) 的整个矩形区域内的所有格子,全部覆盖成大写字母 XiX_i。后贴的海报会盖住先贴的。

请输出所有海报贴完后,公告墙上每个格子显示的字母。

注意:所有海报的左上角都固定在 (1,1)(1,1),只有右下角位置不同。

输入格式

第一行三个整数 H,W,QH, W, Q

接下来 QQ 行,第 ii 行两个整数和一个大写字母 Ri,Ci,XiR_i, C_i, X_i,表示第 ii 张海报。

输出格式

输出 HH 行,第 ii 行是一个长度为 WW 的字符串,其第 jj 个字符表示最终 (i,j)(i,j) 上显示的字母。

样例 1 输入

2 3 3
2 2 B
1 3 C
2 1 D

样例 1 输出

DCC
DBA

样例 1 解释

初始公告墙每格都是 A

AAA
AAA
  • 11 张海报 2 2 B:把 (1,1)(1,1)(2,2)(2,2) 涂成 B,墙面变成 BBA / BBA
  • 22 张海报 1 3 C:把 (1,1)(1,1)(1,3)(1,3) 涂成 C,墙面变成 CCC / BBA
  • 33 张海报 2 1 D:把 (1,1)(1,1)(2,1)(2,1) 涂成 D,墙面变成 DCC / DBA

每个格子最终显示的,是覆盖过它的海报中最后一张的字母。 右下角 (2,3)(2,3) 从头到尾没被任何海报盖到,所以还是初始的 A

样例 2 输入

1 7 7
1 7 E
1 6 C
1 5 N
1 4 A
1 3 V
1 2 D
1 1 A

样例 2 输出

ADVANCE

样例 2 解释

只有一行,且每张海报覆盖的前缀一次比一次短。第 jj 个位置最终留下的,是最后一次覆盖到它的那张海报的字母:

位置 最后覆盖它的海报 字母
11 771 1 A A
22 661 2 D D
33 551 3 V V
44 441 4 A A
55 331 5 N N
66 221 6 C C
77 111 7 E E

样例 3 输入

3 4 2
3 4 Z
3 4 Y

样例 3 输出

YYYY
YYYY
YYYY

样例 3 解释

两张海报覆盖范围完全相同,后贴的 YZ 整个盖住,所以整面墙都是 Y

这个样例提醒:同一区域可能被反复覆盖。若逐张海报真的去涂,重复覆盖会让总涂格数远超 H×WH\times W

数据范围与提示

对于所有测试数据,保证 1H1 \le H1W1 \le WH×W106H \times W \le 10^61Q2×1051 \le Q \le 2\times10^51RiH1 \le R_i \le H1CiW1 \le C_i \le WXiX_i 是大写英文字母,所有输入的数值均为整数。

测试点编号 H×WH \times W 的范围 QQ 的范围 特殊性质
131 \sim 3 104\le 10^4 1000\le 1000
454 \sim 5 106\le 10^6 2×105\le 2\times10^5 H=1H = 1(只有一行)
66 所有 (Ri,Ci)(R_i, C_i) 完全相同
787 \sim 8 105\le 10^5 矩形接近满格
9109 \sim 10 106\le 10^6

注意:HHWW 各自都没有单独的上界,只保证 H×W106H \times W \le 10^6(例如可能出现 H=106,W=1H = 10^6, W = 1)。