// ||x - y||^2, which is the square of the distance between the two
// points. However, since we use the simiarlity (which is conceptually
// the inverse of distance), we use the inverse similarity so that
// elements that are more similarity (i.e., larger values) have smaller
// probabilities.
IntPair firstTwoCenters =
pickFirstTwo(dataPoints, simFunc, weights, inverseSimilarities);
selected.add(firstTwoCenters.x);
selected.add(firstTwoCenters.y);
// For the remaining k-2 points to select, pick a random point, x, with