1 #include <iostream>
 2 #include <algorithm>
 3 #include <cmath>
 4 #include <cstdio>
 5 using namespace std;
 6 const int Max = 5000 + 10;
 7 int x[Max];
 8 int y[Max];
 9 int z[Max];
10 int d[11] = {
11     0
12 };
13 int  dis(int i,int j);
14 int main()
15 {
16     int i = 0;
17     while(cin >> x[i] >> y[i] >> z[i], x[i] || y[i] || z[i])
18         {        
19             i++;
20         }
21     //    sort(d,d+i);
22     for(int j  = 0 ; j < i ; j++)
23         {
24             int min = 10000000;
25             for(int k = 0 ;  k < i;k++)
26                 {
27                     if(j == k) continue;
28                     int t = dis(j,k);
29                     if(min > t)
30                         min = t;
31                 }
32             if(min >= 0 && min <= 9)
33                 {
34                     d[min]++;
35                 }
36         }
37     for(int j = 0; j < 10; j++)
38         printf("%4d",d[j]);
39     cout << endl;
40     
41     return 0;
42 }
43 int dis(int i , int j)
44 {
45     double t = sqrt(static_cast<double>((x[i] - x[j]) *(x[i] - x[j]) +
46                                         (y[i]- y[j])*(y[i] - y[j]) +
47                                         (z[i] - z[j]) * (z[i] - z[j])));
48     return static_cast<int>(t);
49 }
View Code

暴力,从第一个点开始,求出与其他点的距离,求最小值,如果在0-9之内,那个范围的频率都加一。

posted on 2014-05-27 23:23  俺家有地_  阅读(121)  评论(0)    收藏  举报