#2495. 画画油漆桶

画画油漆桶

题目描述

有一个尺寸为 n×mn \times m 的长方形画布,每个像素点的颜色用 00255255 之间的整数表示。现在有一个特殊的油漆桶工具,当你点击画布上的某个像素点 (x,y)(x, y) 时,所有与该点颜色值相差不超过 dd 的连通像素都会被染成该点的颜色。

具体来说,若你点击像素点 (x,y)(x, y),其颜色值为 cc,则所有满足以下条件的像素点 (i,j)(i, j) 都会被染成颜色 cc

  1. (x,y)(x, y) 出发,可以通过上下左右四个方向移动到达与原始点的颜色差的绝对值不超过d的位置 (i,j)(i, j)
  2. 将能够到达的位置变为之前的颜色 cc

给定画布初始状态和若干次点击操作,输出最终的画布状态。

输入格式

  • 第一行包含两个整数 nnmm1n,m1001 \leq n, m \leq 100),表示画布的行数和列数。
  • 接下来 nn 行,每行包含 mm 个整数 ci,jc_{i,j}0ci,j2550 \leq c_{i,j} \leq 255),表示画布的初始颜色。
  • 下一行包含一个整数 qq1q10001 \leq q \leq 1000),表示操作次数。
  • 接下来 qq 行,每行包含三个整数 xx, yy, dd1xn1 \leq x \leq n, 1ym1 \leq y \leq m, 0d2550 \leq d \leq 255),表示点击坐标为 (x,y)(x, y) 的像素点(坐标从 11 开始),且颜色差值阈值为 dd

输出格式

输出 nn 行,每行 mm 个整数,表示经过所有操作后画布的最终颜色。

样例

样例输入

4 4  
3 3 0 4  
3 2 2 8  
1 2 11 12  
13 14 15 16  
2  
2 2 2  
3 3 1  

样例输出

2 2 2 2  
2 2 2 8  
2 2 11 11  
13 14 15 16  

样例解析

数据范围与提示

  • 数据规模1n,m1001 \leq n, m \leq 1001q10001 \leq q \leq 10000ci,j,d2550 \leq c_{i,j}, d \leq 255