40WA怎么办(java)= =
查看原帖
40WA怎么办(java)= =
625009
ivannasakhno楼主2022/1/6 16:54

样例二就过不了了= =代码如下;



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]);//输出两系统内两枚最远导弹之和
	}
}

2022/1/6 16:54
加载中...