您的位置:首页 > 其它

几何水题_HDU_5206

2015-04-18 22:16 295 查看
空间四点,是否能组合正方形,两两连边,4边相等,2*边 = 斜边

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
struct point
{
__int64 x,y,z;
};
__int64 ll(point a, point b)
{
return (a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)+(a.z-b.z)*(a.z-b.z);
}
int main()
{

int t;
scanf("%d",&t);
point a[4];
for(int i = 1; i <= t; i++)
{
for(int i = 0; i < 4; i++)
scanf("%I64d%I64d%I64d",&a[i].x,&a[i].y,&a[i].z);
__int64 d[10];
d[0] = ll(a[0],a[1]);
d[1] = ll(a[0],a[2]);
d[2] = ll(a[0],a[3]);
d[3] = ll(a[1],a[2]);
d[4] = ll(a[1],a[3]);
d[5] = ll(a[2],a[3]);
sort(d,d+6);
// for(int i = 0; i < 6; i++)
// printf("%I64d\n",d[i]);
if(d[0]==d[1] && d[1]==d[2] && d[2]==d[3] && 2*d[0] == d[5])
printf("Case #%d: Yes\n",i);
else
printf("Case #%d: No\n",i);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: