#P2383. Circle Drawing

    ID: 1384 传统题 1000ms 256MiB 尝试: 12 已通过: 1 难度: 10 上传者: 标签>模拟计算几何Northeastern Europe 2004Far-Eastern Subregion

Circle Drawing

题目描述

图形库通常会实现图形基本元素的绘制,比如直线、多边形和圆形。你的任务是编写一个绘制圆形的程序。

图形画布用一个大小为 Xsize * Ysize 的像素数组来表示。每个像素的颜色范围是从 (0) 到 (9)。初始时,所有像素的颜色都是 (0)。像素被看作是边长为 (1) 的小正方形。一个圆心为 ((x_c, y_c)) 且半径为 (R) 的圆是由满足不等式(x − xc)2 + (y − yc)2 ≤ R2 的像素 ((x, y)) 组成的集合。

为了绘制一个圆,你的程序应该将上述集合中所有像素的颜色设置为该圆的颜色。在绘制完 (N) 个给定的圆之后,程序应该输出画布上所有像素的颜色。

输入

输入包含数字Xsize, Ysize ,N,接着是 N 组数字 xi,yi,Ri,ci,这些数字描述了第 (i) 个圆的圆心坐标、半径和颜色。

(1 ≤ Xsize, Ysize ≤ 1000),(1 ≤ N ≤ 10000),(0 ≤ x_i < Xsize),(0 ≤ y_i < Ysize),(1 ≤ R_i ≤ 212),(0 ≤ c_i ≤ 9)。

输出

输出应该包含 Xsize 行,每行有 Ysize 个字符,其中第 (j) 行的第 (i) 个字符是一个数字,对应于像素 ((i, j)) 的颜色。

5 5 1
2 2 1 3
00000
00300
03330
00300
00000

####提示

这个问题有大量的输入和输出数据,使用 scanf()printf() 而不是 cincout 来读取数据,以避免超出时间限制。

来源

2004 年东北欧,远东分区赛