1812. 方形牧场

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

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

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

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

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

正方形牧场的边应与 xx 轴和 yy 轴平行。

输入格式

第一行包含四个整数 x1,y1,x2,y2x1,y1,x2,y2,表示第一个长方形牧场的左下角坐标 (x1,y1)(x1,y1) 和右上角坐标 (x2,y2)(x2,y2)。

第二行同样包含四个整数 x1,y1,x2,y2x1,y1,x2,y2,表示第二个长方形牧场的左下角坐标 (x1,y1)(x1,y1) 和右上角坐标 (x2,y2)(x2,y2)。

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

输出格式

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

数据范围

0≤x1<x2≤100≤x1<x2≤10,
0≤y1<y2≤100≤y1<y2≤10

输入样例:

6 6 8 8
1 8 4 9

输出样例:

49

样例解释

在此样例中,想要将两个原始长方形覆盖,一种可行方法是建立左下角坐标为 (1,6)(1,6) 右上角坐标为 (8,13)(8,13) 的边长为 77 的正方形。

#include <iostream>
#include <cmath>
using namespace std;


int main()
{		
	int a, b, c, d;
	int x1,y1,x2,y2;
	
	
	int dx1 ,dy1,dx2,dy2;
	
	cin >> x1 >> y1 >> x2 >> y2;
	cin >> a >> b >> c >> d;
	
	// 计算两边最大的差值
	dx1 = min(x1,a),dx2 = max(x2, c);
	dy1 = min(y1,b),dy2 = max(y2, d);
	
	// 因为是正方形,所以要取差值最大的一边
	cout << pow(max(abs(dx1 - dx2), abs(dy1 - dy2)),2) <<endl;

    return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

依恋、阳光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值