import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("Enter the number of points: "); int numberOfPoints = input.nextInt(); double[][] points = new double[numberOfPoints][2]; System.out.print("Enter " + numberOfPoints + " points: "); for(int i = 0; i < points.length; i++) { points[i][0] = input.nextDouble(); points[i][1] = input.nextDouble(); } int p1 = 0, p2 = 1; double shortestDistance = distance(points[p1][0], points[p1][1], points[p2][0], points[p2][1]); double[][][] equalDistance = new double[numberOfPoints][2][2]; for(int i = 0; i < points.length; i++) { for(int j = i + 1; j < points.length; j++) { double distance = distance(points[i][0], points[i][1], points[j][0], points[j][1]); if(shortestDistance > distance) { p1 = i; p2 = j; shortestDistance = distance; } } } System.arraycopy(points[p1], 0, equalDistance[0][0], 0, points[p1].length); System.arraycopy(points[p2], 0, equalDistance[0][1], 0, points[p2].length); int count = 1; for(int i = 0; i < points.length; i++) { for(int j = i + 1; j < points.length; j++) { double distance = distance(points[i][0], points[i][1], points[j][0], points[j][1]); if((shortestDistance == distance) && ((p1 != i) || (p2 != j))) { System.arraycopy(points[i], 0, equalDistance[count][0], 0, points[i].length); System.arraycopy(points[j], 0, equalDistance[count][1], 0, points[j].length); count++; } } } System.out.println("The equal distance points are: "); for(int i = 0; i < equalDistance.length; i++) { if((equalDistance[i][0][0] == 0) && (equalDistance[i][0][1] == 0) && (equalDistance[i][1][0] == 0) && (equalDistance[i][1][1] == 0) ) continue; else System.out.println("(" + equalDistance[i][0][0] + ", " + equalDistance[i][0][1] + ") (" + equalDistance[i][1][0] + ", " + equalDistance[i][1][1] + ")"); } } public static double distance(double x1, double y1, double x2, double y2) { return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1)); } }