2020-09CCF题目一
代码
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int X = scanner.nextInt();
int Y = scanner.nextInt();
int[][] D= new int[n][2];
for (int i = 0; i < n; i++) {
int xi = scanner.nextInt();
int yi = scanner.nextInt();
// 第一维存放距离
D[i][0] = (X-xi)*(X-xi) + (Y-yi)*(Y-yi);
// 第二维存放索引,便于查找结果
D[i][1] = i+1;
}
// 重写sort方法,按照数组第一个维度进行升序
Arrays.sort(D, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
return o1[0]-o2[0];
}
});
// 打印出前三个最小值的索引
System.out.println(D[0][1]);
System.out.println(D[1][1]);
System.out.println(D[2][1]);
}
}
测试
拿样例测试一下:
输入:
5 0 1
-1 0
0 0
1 0
0 2
-1 2
输出:
2
4
1