얼룩말 아트
시간 제한1.5초메모리 제한512 MB
사각형과 마름모 갱신이 덮은 횟수만큼 각 픽셀의 색을 뒤집어 W 곱 H 크기의 흑백 그림을 출력합니다.
문제
진수는 초원을 뛰어다니는 야생 얼룩말의 무늬에서 영감을 얻어 다음과 같은 그림을 그리려고 합니다.
진수는 왼쪽 상단 픽셀의 좌표가 (0, 0)이고 오른쪽 하단 픽셀의 좌표가 (W-1, H-1)인 가로 W픽셀 × 세로 H픽셀 크기의 흰 이미지에 K개의 도형을 그릴 것이며, 도형은 두 종류입니다.
- 직사각형 - px, py, qx, qy가 주어지면 px ≤ x ≤ qx와 py ≤ y ≤ qy를 만족하는 모든 픽셀 (x, y)의 색상을 반전시킵니다.
- 다이아몬드 - px, py, r이 주어지면 |x - px| + |y - py| ≤ r을 만족하는 모든 픽셀 (x, y)의 색상을 반전시킵니다.
픽셀이 반전되면 흰색은 검은색으로, 검은색은 흰색으로 바뀝니다.
진수는 도형이 많아질수록 그리기가 어려워졌고, 똑똑한 여러분에게 위 방식대로 그림을 그리는 효율적인 프로그램을 작성해 달라고 부탁했습니다.
입력
첫 번째 줄에 이미지의 가로 픽셀 크기 W (10 ≤ W ≤ 2,500), 이미지의 세로 픽셀 크기 H (10 ≤ H ≤ 2,500), 진수가 그릴 도형의 개수 K (1 ≤ K ≤ 150,000)가 주어집니다.
다음 K개 줄에는 도형들의 정보가 주어집니다.
직사각형인 경우 1, px, py, qx, qy (0 ≤ px ≤ qx < W, 0 ≤ py ≤ qy < H) 형식으로 총 5개의 정수가 주어지며,
다이아몬드인 경우 2, px, py, r (0 ≤ px < W, 0 ≤ py < H, 1 ≤ r < 1,250) 형식으로 총 4개의 정수가 주어집니다.
진수가 그리는 도형이 이미지 밖으로 벗어나는 경우는 없습니다.
출력
첫 번째 줄부터 H번째 줄까지 각 줄에 길이가 W인 문자열을 출력합니다.
진수가 그린 이미지의 (x, y) 픽셀이 검은색이라면 y+1번째 줄 x+1번째 문자를 '#'로, 흰색이라면 '.'로 출력합니다.