CF631B Print Check

题目描述

Kris 在一家大型公司 “Blake Technologies” 工作。作为公司最优秀的工程师,他被指派开发一台能够打印水平和垂直条纹的打印机。首个原型已经完成,Kris 想要对其进行测试。他希望你实现一个程序,检查打印的结果。 打印机在一张尺寸为 $n \times m$ 的矩形纸张上工作。可以将此纸张视作一个包含 $n$ 行 $m$ 列的表格。行从上到下编号为 $1$ 到 $n$,列从左到右编号为 $1$ 到 $m$。最初,所有单元格的颜色都是 $0$。 你的程序需要支持两种操作: 1. 将第 $r_{i}$ 行的所有单元格涂成颜色 $a_{i}$; 2. 将第 $c_{i}$ 列的所有单元格涂成颜色 $a_{i}$。 如果在某次操作 $i$ 时某个单元格已经被涂过色,颜色也会被更改为 $a_{i}$。 你的程序需要在所有 $k$ 次操作执行完之后,输出最终的表格。

输入格式

输入的第一行为三个整数 $n$、$m$、$k$($1 \leq n,m \leq 5000$,$n \cdot m \leq 100000$,$1 \leq k \leq 100000$),分别表示纸张的尺寸和操作的数量。 接下来的 $k$ 行,每行描述一个操作: - $1\ r_{i}\ a_{i}$($1 \leq r_{i} \leq n$,$1 \leq a_{i} \leq 10^9$),表示将第 $r_{i}$ 行的所有单元格涂成颜色 $a_{i}$; - $2\ c_{i}\ a_{i}$($1 \leq c_{i} \leq m$,$1 \leq a_{i} \leq 10^9$),表示将第 $c_{i}$ 列的所有单元格涂成颜色 $a_{i}$。

输出格式

输出 $n$ 行,每行 $m$ 个整数,描述所有操作执行完毕后的结果表格。

说明/提示

下图按步骤展示了第一个样例中的三次操作。每一步被涂色的单元格用灰色标出。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF631B/e5646b5f7ff12084cd8f801de0cdbf511ed88aab.png) 由 ChatGPT 5 翻译