#OD104. 矩形绘制
矩形绘制
题目解析和算法源码
华为OD机试 - 矩形绘制(Java & JS & Python & C & C++)_伏城之外的博客-CSDN博客
题目描述
实现一个简单的绘图模块,绘图模块仅支持矩形的绘制和擦除
- 当新绘制的矩形与之前的图形重叠时,对图形取并集
- 当新擦除的矩形与之前的图形重叠时,对图形取差集
给定一系列矩形的绘制和擦除操作,计算最终图形的面积。
下面给出示例1和示例2的图示
示例1:
两步绘制的矩形如左侧所示,取并集后得到的图形如右侧所示
示例2
第一步绘制的矩形在左侧用实线表示,第二步擦除的矩形在左侧用虚线表示,取差集后得到图像如右侧所示
输入描述
绘图模块采用二维坐标系,输入第一行位操作的数量 N,接下来的 N 行格式为:
- d x1 y1 x2 y2,d表示进行绘制操作,(x1, y1)为矩形左上角坐标,(x2, y2)为矩形右下角坐标
- e x1 y1 x2 y2,e表示进行擦除操作,(x1, y1)为矩形左上角坐标,(x2, y2)为矩形右下角坐标
坐标为整数,且数据范围为 [-100, 100],用例保证坐标有效
输出描述
输出最终图形的面积
用例1
输入
2
d 0 2 2 0
d -1 1 1 -1
输出
7
用例2
输入
2
d 0 2 2 0
e -1 1 1 -1
输出
3