0
点赞
收藏
分享

微信扫一扫

方形牧场(春季每日一题 17)

农夫约翰决定翻修他的农场以简化其几何形状。

以前,他的牛在两个栅栏围起来的长方形牧场上吃草。

现在,约翰想要用栅栏修建一个新的正方形牧场。

正方形牧场需要覆盖之前两个长方形牧场所包围的全部区域。

请你确定,新修建的正方形牧场的面积最小是多少。

正方形牧场的边应与 方形牧场(春季每日一题 17)_数据 轴和 方形牧场(春季每日一题 17)_#include_02 轴平行。

输入格式
第一行包含四个整数 方形牧场(春季每日一题 17)_数据_03,表示第一个长方形牧场的左下角坐标 方形牧场(春季每日一题 17)_#include_04 和右上角坐标 方形牧场(春季每日一题 17)_数据_05

第二行同样包含四个整数 方形牧场(春季每日一题 17)_数据_03,表示第二个长方形牧场的左下角坐标 (x1,y1) 和右上角坐标 方形牧场(春季每日一题 17)_数据_05

两个牧场之间不会发生重叠或接触。

输出格式
输出能够覆盖之前两个长方形牧场所包围的全部区域的正方形牧场的最小面积。

数据范围
方形牧场(春季每日一题 17)_数据_08
方形牧场(春季每日一题 17)_数据_09

输入样例:

6 6 8 8
1 8 4 9

输出样例:

49

样例解释
在此样例中,想要将两个原始长方形覆盖,一种可行方法是建立左下角坐标为 方形牧场(春季每日一题 17)_#include_10 右上角坐标为 方形牧场(春季每日一题 17)_枚举_11 的边长为 方形牧场(春季每日一题 17)_枚举_12 的正方形。

#include<iostream>

using namespace std;

int main(){

int a[2][4];

for(int i = 0; i < 2; i++)
for(int j = 0; j < 4; j++)
cin >> a[i][j];

int x1 = min(a[0][0], a[1][0]);
int y1 = min(a[0][1], a[1][1]);

int x2 = max(a[0][2], a[1][2]);
int y2 = max(a[0][3], a[1][3]);

int l = max(y2 - y1, x2 - x1);
cout << l * l << endl;

return 0;
}


举报

相关推荐

0 条评论