CF44F BerPaint
题目描述
猴子 Anfisa 对文字处理器失望了,因为它们无法充分表达她全部的情感,于是她决定转而使用图形编辑器。当打开 BerPaint 时,她看到一个尺寸为 $W \times H$ 的白色矩形,可以在上面绘画。首先,Anfisa 学会了使用绘图工具绘制线段,并很快在矩形上画了一些黑色线段。结果图片在她看来还不够鲜明,因此她转向了“填充”工具,此工具可用于选择矩形上的一个点和一个颜色,之后将与该点同颜色的整个区域完全填充为所选颜色。经过多次填充操作后,Anfisa 终于完整地表达了自己的情绪,停止了绘画。你的任务是,根据已绘制的线段和执行的填充操作信息,计算出每种颜色在所有填充完成后分别对应的总面积。
输入格式
第一行包含两个整数 $W$ 和 $H$($3 \leq W, H \leq 10^{4}$),表示初始为白色的矩形画布的宽和高。第二行包含一个整数 $n$,表示已经绘制的黑色线段个数($0 \leq n \leq 100$)。接下来 $n$ 行描述每一条线段,以 $x_{1}, y_{1}, x_{2}, y_{2}$ 形式给出端点坐标($0 < x_{1}, x_{2} < W$,$0 < y_{1}, y_{2} < H$)。所有线段长度均不为零。接下来一行包含整数 $m$,表示填充操作的次数($0 \leq m \leq 100$)。接下来的 $m$ 行,每行包含一次填充操作,格式为“$x\,y\,color$”,其中 $(x, y)$ 是选择的点的坐标($0 < x < W, 0 < y < H$),$color$ 是由 1 至 15 个小写拉丁字母组成的颜色名。所有输入中的坐标均为整数。最初矩形为“white”色,线段被画为“black”色。
输出格式
对于最终画面中出现的每个颜色,输出一行,包含颜色名和该颜色区域的总面积,精确到 $10^{-6}$。颜色顺序任意。
说明/提示
最初被 Anfisa 绘制的黑色线段也可以被填充工具重新上色,如果填充操作选中的点正好位于线段上。线段本身面积为 $0$。因此,若最终结果中仅有部分线段被填充为某种颜色,该颜色的面积为 $0$。
由 ChatGPT 5 翻译