Saturday, June 6, 2015

UVa 152 - Tree's a Crowd

// UVa 152 - Tree's a Crowd

#include <iostream>
#include <cmath>
#include <string.h>
#include <stdio.h>
using namespace std;

#define datatype double

struct point {
	datatype x, y, z;
};

double dist(point a, point b) {
	return sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y) + (a.z - b.z) * (a.z - b.z));
}

int main() {
	datatype a, b, c;
	int n = 0;
	cin >> a >> b >> c;
	point tree[5000];
	while (a != 0 || b != 0 || c != 0) {
		tree[n++] = {a,b,c};
		cin >> a >> b >> c;
	}

	int count[10];
	memset(count, 0, sizeof(count));
	for (int i = 0; i < n; i++) {
		datatype mn = 20;
		for (int j = 0; j < n; j++)
			if (i != j) {
				datatype d = dist(tree[i], tree[j]);
				if (d < mn)
					mn = d;
			}
		datatype f = floor(mn);
		if (f < 10)
			count[(int) f]++;
	}
	for (int i = 0; i < 10; i++)
		printf("%4d", count[i]);
	printf("\n");
	return 0;
}

No comments:

Post a Comment