マスキングテープ (Masking Tape)
시간 제한2초메모리 제한2048 MB
2x2 블록을 칠하거나 테이프로 덮는 Q번의 연산을 처리한 뒤, 테이프를 모두 떼었을 때의 최종 색을 출력한다.
문제
JOI 君は,紙とマスキングテープを使い,色塗りをして遊んでいる.
紙は長方形であり,縦 H 行,横 W 列のマス目が描かれている.上から i 行目 (1 ≦ i ≦ H),左から j 列目 (1 ≦ j ≦ W) のマスをマス (i, j) と呼ぶ.
それぞれのマスには色が 1 つ定められている.色は整数で表され,はじめすべてのマスの色は 0 である.
JOI 君は,この紙とマスキングテープを用いて Q 回の操作を行う. k 回目 (1 ≦ k ≦ Q) の操作は,整数 qk の値に応じて以下のように説明される.
qk = 1のとき,この操作は整数xk, yk, ckで表される.マス(xk, yk),(xk + 1, yk),(xk, yk + 1),(xk + 1, yk + 1)それぞれについて,マスがマスキングテープで覆われていなければ,そのマスの色をckに変更する.マスがマスキングテープで覆われているならば,そのマスには何もしない.qk = 2のとき,この操作は整数xk, ykで表される.マス(xk, yk),(xk + 1, yk),(xk, yk + 1),(xk + 1, yk + 1)をマスキングテープで覆う.
Q 回の操作が終わった後,すべてのマスキングテープを剥がす.なお,あるマスのマスキングテープを剥がしたとき,そのマスの色はマスキングテープで覆われる直前の色と同じになる.
Q 回の操作の情報が与えられたとき,最終的な紙のすべてのマスの色を求めるプログラムを作成せよ.
입력
入力は以下の形式で与えられる.
H W Q
(Query 1)
(Query 2)
:
(Query Q)
各 (Query k) (1 ≦ k ≦ Q) にはいくつかの整数が空白区切りで書かれている.そのうち 1 個目の整数が qk であり,この行の内容は以下のいずれかである.
qk = 1のとき,この行には続いて3個の整数xk, yk, ckが空白区切りで書かれている.qk = 2のとき,この行には続いて2個の整数xk, ykが空白区切りで書かれている.
출력
最終的な紙のすべてのマスの色を H 行で出力せよ.i 行目 (1 ≦ i ≦ H) には,W 個の整数を空白区切りで出力せよ.ここで,j 番目 (1 ≦ j ≦ W) に出力する整数はマス (i, j) の色とする.
제한
2 ≦ H ≦ 500.2 ≦ W ≦ 500.1 ≦ Q ≦ 200 000.qkは1か2のいずれかである (1 ≦ k ≦ Q).qk = 1のとき,1 ≦ xk ≦ H - 1,1 ≦ yk ≦ W - 1,1 ≦ ck ≦ 109(1 ≦ k ≦ Q).qk = 2のとき,1 ≦ xk ≦ H - 1,1 ≦ yk ≦ W - 1(1 ≦ k ≦ Q).- 入力される値はすべて整数である.