Great-circle distance
Data structure: disjoint-set forests