bzoj#P1343. [Baltic2007] 围墙 Fence

[Baltic2007] 围墙 Fence

题目描述

Leopold 十分幸运,买彩票中了大奖,得到了一座庄园。庄园中除了 Leopold 打算居住的主宅之外,还有一些其他的建筑。然后,这座庄园缺少围墙保护,这一点让 Loepold 很担心。于是,Loepold 打算在房子周围建围墙,为了省钱他决定只要围墙能将主宅包围起来就足够了,还有一点就是围墙不能离庄园中的任何一个建筑太近。也就是说,每个建筑都被一个禁止矩形包围,在这个矩形内部不允许有任何围墙。矩形的边平行于 x 轴和 y 轴。围墙的每一部分也必须平行于 x 轴或者 y 轴。

请你帮助 Leopold 计算包围主宅的围墙的最小长度。

例如上图中有主宅(黑色)和其他三个建筑,每个建筑外面灰色的矩行是禁止矩形,粗的黑线表示这种情况下最小的围墙长度。

输入格式

第一行是一个正整数 mm,表示庄园中建筑的总数。接下来的 mm 行,每行描述了一个建筑对应的禁止矩形,包括四个空格隔开的整数 tx, ty, bx, bytx,\ ty,\ bx,\ by(tx, ty)(tx,\ ty) 是矩形左上角的坐标,(bx, by)(bx,\ by) 是矩形右下角的坐标。

输出格式

一个正整数,即包围主宅的围墙的最小长度。

4
8 4 13 8
2 1 6 7
4 7 9 11
14 7 19 11
32

数据范围

对于 30%30\% 的测试数据,保证 m10m\leq 10

对于 100%100\% 的测试数据,保证 1m1001\leq m\leq 100,所有的坐标值满足 0txbx1040\leq tx\leq bx\leq 10^40tyby1040\leq ty\leq by\leq 10^4。第一个禁止矩形是包围主宅的。