luogu#P7636. [COCI2010-2011#5] SLIKA

[COCI2010-2011#5] SLIKA

题目描述

Mirko 刚刚安装了一个全新的绘图程序。该程序支持 KK 种不同的颜色,用从 11KK 的整数表示。所有的绘图都是在一个尺寸为 N×NN\times N 的画布上完成的。在开始时,所有格子都是白色的(用 1表示)。

画布左上角的单元格为坐标 (0,0)(0,0)。第一个坐标 xx 表示行,第二个坐标 yy 表示列。

Mirko 最喜欢的消遣是使用 PAINT c x1 y1 x2 y2 命令绘制矩形棋盘图案,其中 cc 表示所选的颜色,(x1,y1)(x1,y1)(x2,y2)(x2,y2) 分别是左上的坐标和右下的坐标。

矩形左上角的单元格将被绘制为所选的颜色,而其余的则如棋盘一样涂色。没有被所选颜色覆盖的单元格将保持它们之前的颜色。

例如,一个白色的画布涂上一个红色的棋盘图案看起来就像这样的:

Mirko最近发现了另外两个命令。他可以随时保存他的画通过使用 SAVE 的命令,稍后使用 load x 命令再次加载它,其中 xx 表示保存的序列号的正整数。

不幸的是,程序崩溃了,Mirko 的画永远丢失了。幸运的是,Mirko 用了一个保存所有已使用命令的日志。你能帮 Mirko 修复那幅丢失的画吗?

输入格式

输入的第一行包含三个正整数 N,K,MN,K,MNN 代表画布的边长,KK 代表有 KK 种颜色,MM 代表命令个数。

下面的 MM 行每一行都包含描述的三个命令中的一个。输入将不包含任何非法的命令。

输出格式

输出共 NN 行,每一行包含 NN 个表示单元格颜色的整数,对应一行的画。

4 3 2
PAINT 2 0 0 3 3
PAINT 3 0 3 3 3 
2 1 2 3
1 2 1 2
2 1 2 3
1 2 1 2 
3 3 4
PAINT 3 0 0 1 1
SAVE
PAINT 2 1 1 2 2
LOAD 1 
3 1 1
1 3 1
1 1 1 
3 4 7
PAINT 2 0 0 1 1
SAVE
PAINT 3 1 1 2 2
SAVE
PAINT 4 0 2 0 2
LOAD 2
PAINT 4 2 0 2 0 
2 1 1
1 3 1
4 1 3 

提示

【样例解释#1】

命令 11(0,0)(0,0)(3,3)(3,3) 的格子染成了棋盘式,即把 (0,0)(0,0)(0,2)(0,2)(1,1)(1,1)(1,3)(1,3)(2,0)(2,0)(2,2)(2,2)(3,1)(3,1)(3,3)(3,3) 都染成了 22

命令 22(0,3)(0,3)(3,3)(3,3) 的格子染成了棋盘式,即把 (0,3)(0,3)(2,3)(2,3) 染成了 33

【数据范围】

对于 100%100\% 的数据,1N10001\le N\le 10002K1052\le K\le 10^51M1051 \leq M \leq 10^5

【说明】

本题分值按 COCI 原题设置,满分 130130

题目译自 COCI2010-2011 CONTEST #5 T6 SLIKA