SOJ ONLINE JUDGE

Imos Method 2

난이도: Platinum IV 출제자: rlatjwls7882 시간 제한: 1000 ms 메모리 제한: 512 MB
차분 배열 트릭

$H$개의 행과 $W$개의 열로 이루어진 격자가 있다. 처음에 모든 칸의 값은 0이다.

격자의 맨 왼쪽 위 칸의 좌표는 $(1,1)$이고, 맨 오른쪽 아래 칸의 좌표는 $(W,H)$이다.

좌표 $(x,y)$는 왼쪽에서 $x$번째 열이면서 위에서 $y$번째 행인 칸을 나타낸다.

격자에 $N$개의 직각삼각형을 순서대로 그린다.

하나의 직각삼각형은 세 정수 $x$, $y$, $k$로 주어진다.

이 직각삼각형을 그리면 $0 \leq d < k$인 모든 정수 $d$에 대해, $(x,y+d)$부터 $(x+d,y+d)$까지의 칸의 값이 1씩 증가한다.

모든 직각삼각형을 그린 뒤 각 칸의 값을 출력하라.

삼각형의 모양은 다음과 같다.

#
##
###
####

입력

첫 번째 줄에 격자의 행의 개수 $H$, 열의 개수 $W$, 직각삼각형의 개수 $N$이 주어진다. $(1 \leq H,W \leq 1\,000, 0 \leq N \leq 100\,000)$

두 번째 줄부터 $N$개의 줄에 걸쳐 직각삼각형을 나타내는 세 정수 $x$, $y$, $k$가 주어진다. $(1 \leq x \leq W, 1 \leq y \leq H, 1 \leq k, x+k-1 \leq W, y+k-1 \leq H)$

출력

모든 직각삼각형을 그린 뒤 격자의 값을 출력한다.

$H$개의 줄에 걸쳐 각 줄에 $W$개의 정수를 공백으로 구분하여 출력한다.

예제 입력 1

5 6 2
1 1 3
3 2 3

예제 출력 1

1 0 0 0 0 0 
1 1 1 0 0 0 
1 1 2 1 0 0 
0 0 1 1 1 0 
0 0 0 0 0 0 

제출