XDOJ 516 面积计算

题面

问题描述

输入四个点的坐标,每个点的坐标由它的横坐标和纵坐标组成,然后计算这四个点所构成矩形的面积。给定数据保证矩阵的边长均为整数。

输入格式

输入的第一行包含两个整数x1,y1,表示点A的横坐标和纵坐标。

输入的第二行包含两个整数x2,y2,表示点B的横坐标和纵坐标。

输入的第三行包含两个整数x3,y3,表示点C的横坐标和纵坐标。

输入的第四行包含两个整数x4,y4,表示点D的横坐标和纵坐标。

(输入整数之间用一个空格分隔)

输出格式

  输出一个整数,表示这四个点构成的矩形的面积。

样例输入

0 1

2 1

0 0

2 0

样例输出

2

样例说明

  点A的坐标为(0,1), 点B的坐标为(2,1), 点C的坐标为(0,0), 点D的坐标为(2,0)。矩形一个边的边长为2,一个边的边长为1,所以面积为1*2=2。

评测用例规模与约定

-10 ≤ xi ≤ 10,-10 ≤ yi ≤ 10。

 

 题解

这题用不到结构体

观察可知:

矩形中线段一共有三种长度,
这三种长度可以由一点与其它三点的距离得出。

所以这题的解题思路就是:
记录这三种长度,排序,选择小的两个长度,将他们乘起来并输出

#include <iostream>
#include <cmath>
#include <algorithm>

using namespace std;

int main()
{
	int tmp1x, tmp1y, tmp2x, tmp2y, len[4];
	
	cin >> tmp1x >> tmp1y;
	
	for (int i = 1; i <= 3; i++)
	{
		cin >> tmp2x >> tmp2y;
		len[i] = sqrt((tmp1x - tmp2x) * (tmp1x - tmp2x) + (tmp1y - tmp2y) * (tmp1y - tmp2y));
	}
	
	sort(len + 1, len + 3 + 1);
	
	cout << len[1] * len[2];
	return 0;
}

 date:20231230

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

bbw20110110

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

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

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

打赏作者

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

抵扣说明:

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

余额充值