Use the union/find algorithm to implement a solution for the following problem. Given a set of points represented by their xy-coordinates, assign the points to clusters. Any two points are defined to be in the same cluster if they are within a specified distance d of each other. For the purpose of this problem, clustering is an equivalence relationship. In other words, points A, B, and C are defined to be in the same cluster if the distance between A and B is less than d and the distance between A and C is also less than d, even if the distance between B and C is greater than d. To solve the problem, compute the distance between each pair of points, using the equivalence alogorithm to merge cluster whenever two points are within specified distance.
**UNION/FIND alogorithm
template <class Elem> class Gentree{
private:
int* array;
int size;
int FIND(int) const;
public:
Gentree(int)
~Gentree{delete [] array;}
void UNION(int, int);
bool differ(int, int);
};**
**Gentree::Gentree(int sz){
size = sz;
array = new int[sz];
for(int i=0;i<sz;i++) array[i]=ROOT;
}**
**bool Gentree::differ(int a, int b){
int root1 = FIND(a);
int root2 = FIND(b);
return root1 != root2;
}**
**void Gentree::UNION(int a, int b){
int root1 = FIND(a);
int root2 = FIND(b);
if(root1 != root2) array[root2] = root1;
}**
**int Gentree::FIND(int curr) const{
while (array[curr] != ROOT) curr = array[curr];
return curr;
}**
## Deliverables
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
## Platform
ms visual c++, have to run in unix