만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

원 그리기

시간 제한3초메모리 제한128 MB

요약
원을 격자에 차례로 그리면서 나중 원이 이전 원을 덮어쓰게 하고, 마지막에 모든 픽셀의 색을 출력한다.
난이도

쉬움10점 중 3점

유형
시뮬레이션, 기하, 구현
정답자
아직 제출이 없습니다

문제

그래픽 라이브러리는 보통 선, 다각형, 원과 같은 기본 도형을 그리는 기능을 제공합니다. 이 문제에서는 원을 그리는 프로그램을 작성합니다.

캔버스는 가로 XsizeX_{size}개, 세로 YsizeY_{size}개의 픽셀로 이루어진 격자입니다. 각 픽셀은 0부터 9까지의 색을 가지며, 처음에는 모든 픽셀의 색이 0입니다. 각 픽셀은 한 변의 길이가 1인 작은 정사각형으로 생각합니다.

중심이 (xc,yc)(x_c, y_c)이고 반지름이 RR인 원은 다음 부등식을 만족하는 픽셀 (x,y)(x, y)들의 집합입니다.

(x−xc)2+(y−yc)2≤R2(x - x_c)^2 + (y - y_c)^2 \le R^2

원을 그린다는 것은 이 집합에 속하는 모든 픽셀의 색을 그 원의 색으로 바꾸는 것을 뜻합니다. 주어진 NN개의 원을 순서대로 그린 뒤, 캔버스의 모든 픽셀의 색을 출력하세요.

입력

입력에는 XsizeX_{size}, YsizeY_{size}, NN이 주어지고, 이어서 NN개의 원에 대한 정보가 각각 xix_i, yiy_i, RiR_i, cic_i 순서로 주어집니다. 이는 ii번째 원의 중심 좌표, 반지름, 색을 나타냅니다. 모든 수는 공백 또는 줄바꿈으로 구분됩니다.

출력

YsizeY_{size}개의 줄을 출력합니다. 각 줄은 XsizeX_{size}개의 문자로 이루어지며, jj번째 줄의 ii번째 문자는 픽셀 (i,j)(i, j)의 색을 나타내는 숫자입니다.

제한

  • 1≤Xsize,Ysize≤10001 \le X_{size}, Y_{size} \le 1000
  • 1≤N≤100001 \le N \le 10000
  • 0≤xi<Xsize0 \le x_i < X_{size}
  • 0≤yi<Ysize0 \le y_i < Y_{size}
  • 1≤Ri≤2001 \le R_i \le 200
  • 0≤ci≤90 \le c_i \le 9

예제2

  1. 예제 1

    입력
    5 5 1
    2 2 1 3
    
    예상 출력
    00000
    00300
    03330
    00300
    00000
    
  2. 예제 2

    입력
    4 3 2
    2 2 2 5
    0 1 1 9
    
    예상 출력
    9050
    9955
    9555