UVA-152- Tree's a Crowd

题目的意思是,输入一些坐标,一个点如果与其他的点的距离小于10,即为0~9,则,计入~

最后输出0~9的个数

很简单,输入的一个数,然后与前面的数比较,如果合格并且比最小值小,就放在最小值里,然后,++

 

 

#include<stdio.h>
#include<string.h>
#include<math.h>
struct list
{
	int x;
	int y;
	int z;
}s[100000];
int main()
{
	int a[10];
	int leap,i,j,num,min;
	leap=0;
	memset(a,0,sizeof(a));
	while(scanf("%d%d%d",&s[leap].x,&s[leap].y,&s[leap].z)&&(s[leap].x||s[leap].y||s[leap].z))
	{
		leap++;
	}
	for(i=0;i<leap;i++)
	{
		min=-1;
		for(j=0;j<leap;j++)
		{
			if(i!=j)
			{
				num=(s[i].x-s[j].x)*(s[i].x-s[j].x);
				num+=(s[i].y-s[j].y)*(s[i].y-s[j].y);
				num+=(s[i].z-s[j].z)*(s[i].z-s[j].z);
				num=(int)sqrt(num);
				if(min==-1||num<min)
				{
					min=num;
				}
			}
		}
		if(min<10)
			a[min]++;
	}
	for(i=0;i<10;i++)
	{
		printf("%4d",a[i]);
			
	}
	printf("\n");
	return 0;
}

你可能感兴趣的:(list,tree)