实现一个简单的绘图模块,支持在二维坐标系中绘制和擦除矩形。对于给定的一系列操作,要求计算最终图形的面积。绘制操作(d
)将新矩形添加到当前图形中并与已存在的矩形进行合并,而擦除操作(e
)则会从当前图形中移除与指定矩形重叠的部分。求最终面积
为了解决这个问题,我们采用扫描线算法和区间处理的思路。具体步骤如下:
d
或 e
)和坐标。实现一个简单的绘图模块,绘图模块仅支持矩形的绘制和擦除
给定一系列矩形的绘制和擦除操作,计算最终图形的面积。
下面给出示例 1 和示例 2 的图示
示例 1 :
两步绘制的矩形如左侧所示,取并集后得到的图形如右侧所示
示例 2 :
第一步绘制的矩形在左侧用实线表示,第二步擦除的矩形在左侧用虚线表示,取差集后得到图像如右侧所示
绘图模块采用二维坐标系,输入第一行位操作的数量 N ,接下来的 N 行格式为:
坐标为整数,且数据范围为 [−100,100],用例保证坐标有效
输出最终图形的面积
输入
2
d 0 2 2 0
d -1 1 1 -1
输出
7
输入
2
d 0 2 2 0
e -1 1 1 -1
输出
3