如题,题目如下:
题目描述
FDFZ特别喜欢正方形。以前他有两个长方形操场,每个操场都由左下角坐标(a, b)(a,b)和右上角坐标(x,y)(x,y)描述,并且两侧与XX轴和YY轴平行。现在FDFZ想用一个最小尺寸的正方形操场来代替已有的两个操场,并且要覆盖已有的两个操场的区域。
请帮助FDFZ计算出他的正方形操场所需的最小面积。
输入格式
第一行有四个整数,aa,bb,xx,yy,四个整数均在0~10之间,表示原来的第一个长方形操场,操场的左下角位于点(a,b)(a,b),右上角位于点(x,y)(x,y),其中x>ax>a,y>by>b。
第二行也有四个整数,表示原来的第二个长方形操场,表示方法与第一个相同。
测试数据保证两个长方形操场没有重叠部分
输出格式
一个整数,表示新的正方形操场的面积的最小值。
输入输出样例
输入 #1
6 6 8 8
1 8 4 9
输出 #1
49
输入 #2
2 1 9 7
5 8 6 9
输出 #2
64
我的代码如下:
#include <bits/stdc++.h>
using namespace std;
int main() {
int a[3];
int b[3];
for(int i = 0;i <= 3;i++) {
cin >> a[i] >> b[i];
}
sort(a,a+4);
sort(b,b+4);
int c=max(a[3]-a[0], b[3]-b[0]);
cout << c*c;
return 0;
}
其中,数组a保存了4个坐标的横坐标,数组b保存了4个坐标的纵坐标。我的想法是,求出横、纵坐标的最大值和最小值并作差,求出较大的那个构建正方形。但是只有40分,请问哪里有问题?