样例二就过不了了= =代码如下;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int [][] ar1=new int[2][2],ar2=new int[100000][2];
int[] yuan=new int[100000],jin=new int [100000];
ar1[0][0]=scan.nextInt();ar1[0][1]=scan.nextInt();ar1[1][0]=scan.nextInt();ar1[1][1]=scan.nextInt();//输入初始坐标
int a=scan.nextInt();//输入导弹数
for (int i = 0; i < a; i++) {
ar2[i][0]=scan.nextInt();
ar2[i][1]=scan.nextInt();
int x=ar2[i][0],y=ar2[i][1];
int d1=(x-ar1[0][0])*(x-ar1[0][0])+(y-ar1[0][1])*(y-ar1[0][1]);//计算该点到初始点1的距离
int d2=(x-ar1[1][0])*(x-ar1[1][0])+(y-ar1[1][1])*(y-ar1[1][1]);//计算该点到初始点2的距离
if(d1<=d2) {
jin[i]=d1;//如果到点1的距离短,就把他分给点1处的拦截系统
}else if(d1>=d2){
yuan[i]=d2;//否则就属于点2的拦截系统.相等则都属于。
}
}
Arrays.sort(yuan);//给点2的系统内导弹距离点2的距离升序排序,最大的就是该系统半径
Arrays.sort(jin);//给点1的系统内导弹距离点1的距离升序排序,最大的那个就是该系统半径
System.out.println(yuan[yuan.length-1]+jin[jin.length-1]);//输出两系统内两枚最远导弹之和
}
}