试题 基础练习 矩形面积交
资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。 输入格式 输入仅包含两行,每行描述一个矩形。 在每行中,给出矩形的一对相对顶点的坐标,每个点的坐标都用两个绝对值不超过10^7的实数表示。 输出格式 输出仅包含一个实数,为交的面积,保留到小数后两位。 样例输入 1 1 3 3 2 2 4 4 样例输出 1.00
#include <iostream> #include <iomanip> #include <algorithm> using namespace std; int main() { double x1, y1, x2, y2, X1, Y1,X2,Y2; cin >> x1 >> y1 >> x2 >> y2 >> X1 >> Y1 >> X2 >> Y2; double l = max(min(x1,x2), min(X1,X2)); //x1 x2 y1 y2输入时大小都不确定的 double r = min(max(x1,x2), max(X1,X2)); // double d = max(min(y1,y2), min(Y1,Y2)); double u = min(max(y1,y2), max(Y1,Y2)); if(r>l&&u>d) //上边界大于下边界,右边界大于左边界 cout << fixed << setprecision(2) << (r - l)*(u - d); else { cout << "0.00";//否则输出0 } return 0; }