一些矩形的海报、照片或其他同样形状的图片被张贴在墙上。它们的边都是垂直或水平的。每个矩形可以部分或全部覆盖其它矩形。所有矩形组成的集合的边界称为周界。
写一个程序计算周界。
输入格式:
文件PICTURE.IN 的第一行张贴在墙壁上的矩形图片的数目。在随后的行中,每行有两个点的坐标,分别为某一个矩形的左下角和右上角的坐标。每一个坐标由X坐标与Y坐标组成。
输出格式:
文件PICTURE.OUT包含一行,为一个非负整数,表示输入数据中所有矩形集的周界。
样例输入:
7 -15 0 5 10 -5 8 20 25 15 -4 24 14 0 -6 16 4 2 15 10 22 30 10 36 20 34 0 40 16
样例输出:
228
数据范围:
0 < 矩形数 < 50000
所有坐标在 [-10000,10000]内,结果的值可能需要32位有带符号表示。
时间限制:
1s
空间限制:
256m
题解在代码内
#include<bits/stdc++.h>
using
namespace
std;
const
int
maxn=5005;
const
int
size=20005;
const
int
zero=10000;
struct
node{
int
x,y,f;
bool
ok;}a[2][maxn*2];
int
level[size];
int
n,i,x1,x2,y1,y2,ans;
bool
cmp(node c,node d){
return