jzoj1765. Circle
题目
Description
给定三个点(不共线)的坐标,要求以这三个点为圆心做三个圆,圆两两不相交,不包含,问三个圆的直径和最大为多少。
Input
第一行为测试数据组数t。接下来t行每行6个数为坐标。
Output
T行,每行一个整数表示直径和(取下整)。
Sample Input
1
0 0 0 1 1 0
Sample Output
3
分析
一看就是一道数学题
求他们的最大直径和其实就是求上图的三条边
用勾股定理即可求出
CODE
#include<iostream>
#include<cmath>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int t;
double s[5],x[5],y[5];
int main(){
scanf("%d",&t);
while (t--){
scanf("%lf%lf%lf%lf%lf%lf",&x[1],&y[1],&x[2],&y[2],&x[3],&y[3]);
s[1]=sqrt(pow(x[1]-x[2],2)+pow(y[1]-y[2],2));
s[2]=sqrt(pow(x[1]-x[3],2)+pow(y[1]-y[3],2));
s[3]=sqrt(pow(x[3]-x[2],2)+pow(y[3]-y[2],2));
printf("%0.f\n",floor(s[1]+s[2]+s[3]));
}
return 0;
}