http://poj.org/problem?id=1046

据说这个题是个水题,但我还是WA了好几次,最后才改对了

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<iostream>
 4 #include<cmath>
 5 using namespace std;
 6 #define MAXN 1000000.0
 7 int a[100][3],b[100];
 8 double dis[101];
 9 int count ,flag ;
10 int main()
11 {
12     int i;
13     for(i=0;i <= 15;i++)
14     {
15         for(int j=0; j <= 2 ; j++)
16         {
17             scanf("%d",&a[i][j]);
18         }
19     }
20 
21     for( i = 0;i < MAXN ; i++)
22     {
23         for(int j = 0 ; j <= 2 ; j++)
24         {
25             scanf("%d",&b[j]);
26             if(b[j]==-1)
27             flag++;
28         }
29         if(flag==3)
30         break;
31         double min = MAXN;
32         for(int k = 0 ; k <= 15 ; k++)
33         {
34             int sum = 0;
35             for(int j = 0 ; j <= 2 ; j++)
36             {
37                 sum += (a[k][j]-b[j])*(a[k][j]-b[j]);
38             }
39             dis[k] = sqrt((double)sum);
40              if(dis[k]<min)
41             {
42                 min =dis[k];
43                 count = k ;
44             }
45         }
46         printf("(%d,%d,%d) maps to (%d,%d,%d)\n",b[0],b[1],b[2],a[count][0],a[count][1],a[count][2]);
47     }
48     return 0 ;
49 }
View Code

 

posted on 2013-07-30 15:54  枫、  阅读(152)  评论(0编辑  收藏  举报