Sample Input
1
(1,1) (2,2) (3,3)
9
(8,8)(1,3)(3,9)
(7,2)(2,2)(6,2)
(1,6)(1,5)(6,9)
(5,5)(4,7)(9,8)
(4,3)(7,6)(9,9)
(1,3)(6,9)(4,5)
(1,7)(1,2)(2,7)
(1,2)(1,1)(6,7)
(7,8)(6,7)(8,6)
Sample Output
14.14
17.41
16.37
16.05
16.64
14.26
15.36
16.78
14.49
17.26
需要初始化m,判断m和a的关系应该在判断IJK内,否则a = 1.79不动
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define DIS(x1,y1,x2,y2) (sqrt((x1-x2)*(x1-x2)+ (y1-y2)*(y1-y2)))
#define LEN(x,y) (sqrt(x*x +y*y))
#define MAXN 1000000
int main()
{
int i,j,n,t,k;
scanf("%d\n", &t);
while(t--)
{
double x[4] = {0}, y[4] = {0},m,a = MAXN;
scanf("(%lf,%lf)(%lf,%lf)(%lf,%lf)", &x[0],&y[0],&x[1],&y[1],&x[2],&y[2]);
fflush(stdin);
for(i=0; i<3 ;i++)
{
for(j = 0; j < 3; j++)
{
for(k = 0; k < 3; k++)
{
if(i != j && i != k && j != k)
{
m =
DIS(0, 0, x[i], y[i])+
DIS(x[j], y[j], x[i], y[i])+
DIS(x[j], y[j], x[k], y[k])+
DIS(10, 10, x[k], y[k]);
if(m < a)
a = m;
}
}
}
}
printf("%.2lf", a);
if(t != 0)
printf("\n");
}
return 0;
}