CSP之检测点查询

题目连接

http://118.190.20.162/view.page?gpid=T113

思路

了解一下排序器就行

解法

public class jiancedian {
    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[][] arr = new int[n][2];
        for (int i = 0; i < n; i++) {
            int xi = scanner.nextInt();
            int yi = scanner.nextInt();
            int distance = ((x-xi) * (x-xi)) + ((y-yi) * (y-yi));
            arr[i][0] = i+1;
            arr[i][1] = distance;
        }
		// 如果距离相等,那么按照编号升序,如果不等就按照距离升序
        Arrays.sort(arr, (o1, o2) -> o1[1] == o2[1] ? o1[0]-o2[0] : o1[1]-o2[1]);
        for (int i = 0; i < 3; i++) {
            System.out.print(arr[i][0]+"\n");
        }
    }
}

总结

重点不是这道题的解法,而是在用CSP编译器遇见一个非常恶心的问题。
最后输出语句System.out.println(arr[i][0]);编译报错了,傻逼CSP又不写哪里错误,搞得我一直在纠结自己的思路哪里有问题。
记得用System.out.print("\n")这种方式换行

上一篇:NC102 在二叉树中找到两个节点的最近公共祖先 Java算法


下一篇:Java数据按照时间排序