﻿ 杭电ACM 2056 ：Rectangles (求相交矩形的面积)_OC/C/C++_开心洋葱网
• 欢迎访问开心洋葱网站，在线教程，推荐使用最新版火狐浏览器和Chrome浏览器访问本网站，欢迎加入开心洋葱` QQ群`
• 为方便开心洋葱网用户，开心洋葱官网已经开启复制功能！
• 欢迎访问开心洋葱网站，手机也能访问哦~欢迎加入开心洋葱多维思维学习平台` QQ群`
• 如果您觉得本站非常有看点，那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~！
• 由于近期流量激增，小站的ECS没能经的起亲们的访问，本站依然没有盈利，如果各位看如果觉着文字不错，还请看官给小站打个赏~~~~~~~~~~~~~！

# 杭电ACM 2056 ：Rectangles (求相交矩形的面积)

1091次浏览 手机上查看

Problem Description

Given two rectangles and the coordinates of two points on the diagonals of each rectangle,you have to calculate the area of the intersected part of two rectangles. its sides are parallel to OX and OY .

Input

Input The first line of input is 8 positive numbers which indicate the coordinates of four points that must be on each diagonal.The 8 numbers are x1,y1,x2,y2,x3,y3,x4,y4.That means the two points on the first rectangle are(x1,y1),(x2,y2);the other two points on the second rectangle are (x3,y3),(x4,y4).

Output

Output For each case output the area of their intersected part in a single line.accurate up to 2 decimal places.

Sample Input

1.00 1.00 3.00 3.00 2.00 2.00 4.00 4.00 5.00 5.00 13.00 13.00 4.00 4.00 12.50 12.50

Sample Output

1.00 56.25

C++代码：

```
#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
int main()
{
double x1,y1,x2,y2,x3,y3,x4,y4;
double x,y;
double s,l,h;
while(cin>>x1>>y1>>x2>>y2>>x3>>y3>>x4>>y4)
{
x=x1;x=x2;x=x3;x=x4;
y=y1;y=y2;y=y3;y=y4;
sort(x,x+4);
sort(y,y+4);
l=fabs(x2-x1)+fabs(x4-x3)-(x-x);
h=fabs(y2-y1)+fabs(y4-y3)-(y-y);
s=l*h;
if(l<=0 || h<=0)s=0.00;
printf("%.2lf\n",s);

}
return 0;
}
```

[开心洋葱]  • 版权声明

本站的文章和资源来自互联网或者站长的原创，按照 CC BY -NC -SA 3.0 CN协议发布和共享，转载或引用本站文章应遵循相同协议。如果有侵犯版权的资源请尽快联系站长，我们会在24h内删除有争议的资源。
• 合作网站

• 友情链接

• 关于我们

一群热爱思考，热爱生活，有理想的新社会主义接班人的多维思维学习平台，天行健，君子以自强不息。地势坤，君子以厚德载物。
……