称检测点查询
分别对距离和位置使用一次排序即可
import java.util.*;
public class 二维数组按值排序 {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int X = input.nextInt();
int Y = input.nextInt();
int[][] a = new int[n][2];
//输入
for(int i =0;i<n;i++){
int x = input.nextInt();
int y = input.nextInt();
a[i][0] = (X-x)*(X-x)+(Y-y)*(Y-y);
a[i][1] = i+1;
}
//按距离排序
for(int i =0;i<n;i++){
for(int j =0;j<n;j++){
if(a[i][0] < a[j][0]){
int t1 = a[i][0];
int t2 = a[i][1];
a[i][0] = a[j][0];
a[i][1] = a[j][1];
a[j][0] = t1;
a[j][1] = t2;
}
}
}
// for(int i =0;i<n;i++){
// System.out.print(a[i][0]+" ");
// }
// System.out.println();
//按编号排序
for(int i =0;i<n-1;i++){
for(int j =i+1;j<n;j++){
if(a[i][0] == a[j][0]){
if(a[i][1] > a[j][1]) {
int t = a[i][1];
a[i][1] = a[j][1];
a[j][1] = t;
}
}
}
}
//打印结果
for(int i =0;i<3;i++){
System.out.println(a[i][1] + " ");
}
}
}