直角三角形
/*
输入描述:
输入第一行为样例数m,接下来m行每行6个整数分别表示三个点的横纵坐标。
输出描述:
对于每个样例输出两行,第一行根据是否直角三角形输出Yes或No,第二行输出三角形的周长,保留小数点后两位。
*/
#include<stdio.h>
#include<math.h>
int main(int argc,char *argv[])
{
int i,j,n,a,b,c;
int nums[3][2],max=0;
scanf("%d",&n);
while(n--)
{
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
{
scanf("%d",&nums[i][j]);
}
}
a=pow(nums[0][0]-nums[1][0],2)+pow(nums[0][1]-nums[1][1],2);
b=pow(nums[1][0]-nums[2][0],2)+pow(nums[1][1]-nums[2][1],2);
c=pow(nums[2][0]-nums[0][0],2)+pow(nums[2][1]-nums[0][1],2);
if(a>b)
{
max=a>c?a:c;
}else
{
max=b>c?b:c;
}
if((max!=a&&max!=b&&max==b+a)||(max!=b&&max!=c&&max==b+c)||(max!=a&&max!=c&&max==a+c))
{
printf("Yes\n");
}else
{
printf("No\n");
}
printf("%.2lf\n",(double)(sqrt(a)+sqrt(b)+sqrt(c)));
}
return 0;
}