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) ",b[0],b[1],b[2],a[count][0],a[count][1],a[count][2]); 47 } 48 return 0 ; 49 }