0
点赞
收藏
分享

微信扫一扫

【SSL.1715】计算面积(计算几何)

sullay 2022-01-17 阅读 43

计算面积

Description

呆子是一个很聪明的人但也是一个很粗心的人,因此常常会丢三落四。一次老师给呆子留了一个很简单的题目,已知平面上一平行四边形的四个顶点,求这个平行四边形的面积。但粗心的呆子却只记了三个点的坐标,因此呆子现在和郁闷。你现在能帮助呆子计算一下老师留给呆子的平行四边形可能的最大面积是多少吗?

Input

首先输入一个整数t表示测试数据的组数(1 =< t <= 30),接下来的t行,每行三对整数,表示呆子已知的平行四边形的顶点坐标。每对整数x, y(0<=x, y <= 10000)中第一个数表示横坐标,第二个数表示纵坐标。每组输入保证是三个不同的点。

Output

共输出t行,第i行为第i组数据的最大可能面积。
输出结果保留一位小数。如果这样的平行四边形不存在,即求得的面积大小为0则输出Error。

输入样例

2
1 2 3 4 5 6
17 28 89 67 189 25

输入样例

Error
6924.0

解题思路

求出三角形面积,取最大

AC代码

#include<algorithm>
#include<cstdio>
using namespace std;
int cj(int x1,int y1,int x2,int y2)
{
	return x1*y2-x2*y1;
}
int main()
{
	int T;
	scanf("%d",&T);
	while(T--)
	{
		int x1,y1,x2,y2,x3,y3;
		scanf("%d%d%d%d%d%d",&x1,&y1,&x2,&y2,&x3,&y3);
		int ans1=cj(x2-x1,y2-y1,x3-x1,y3-y1),ans2=cj(x1-x2,y1-y2,x3-x2,y3-y2),ans3=cj(x1-x3,y1-y3,x2-x3,y2-y3);//求面积
		ans=max(ans1,max(ans2,ans3));//要最大
		if(ans==0)printf("Error\n");
		else printf("%d.0\n",ans);
	}
	return 0;
}

谢谢

举报

相关推荐

0 条评论