I-The Hurt Locker

這裏寫圖片描述

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;
}
發佈了55 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章