想问问大家我这段代码的运行错误出现在哪

能不能麻烦大家帮我看一下,总显示我运行错误(挠头),谢谢!
import java.io.*;
import java.util.*;
public class OJ1045 {
    public static void main(String args[]) {
        Scanner ain = new Scanner(System.in);
        while(ain.hasNext()) {
            int n = ain.nextInt();
            int x[] = new int[n];
            int y[] = new int[n];
            int r[] = new int[n];
            for(int i = 0; i < n; i++) {
                x[i] = ain.nextInt();
                y[i] = ain.nextInt();
                r[i] = ain.nextInt();
            }
            int count = 0;
            for(int i = 0; i < n; i++) {
                if(r[i]>0) {
                    count++;
                }
            }
            if(count==n) {
                if(n==1) {
                    double s = r[0]*r[0]*(157/50);
                    for(int i = 1; ; i++) {
                        if((i*i)>=s ) {
                            System.out.println(i);
                            break;
                        }
                    }
                } else {
                    if(n>0 && n!=1) {
                        double distance[] = new double[n];
                        int a = 0;
                        for(int i = 0; i < n-1; i++) {
                            for(int j = i+1; j < n; j++) {
                                distance[a++] = Math.sqrt((Math.pow((x[i]-x[j]),2))+(Math.pow((y[i]-y[j]),2)));
                            }
                        }
                        double d1[] = new double[n];
                        int b = 0;
                        double r1 = 0;
                        for(int i = 0; i < n-1; i++) {
                            for(int j = i+1; j < n; j++) {
                                if(r[i]<=r[j]) {
                                    double distance1 = distance[b]+r[i];
                                    if(distance1<=r[j]) {
                                        r1 = r[j];
                                        d1[b] = r1;
                                    } else {
                                        r1 = (distance1+r[j])/2;
                                        d1[b] = r1;
                                    }
                                    b++;
                                } else {
                                    double distance2 = distance[b]+r[j];
                                    if(distance2<=r[i]) {
                                        r1 = r[i];
                                        d1[b] = r1;
                                    } else {
                                        r1 = (distance2+r[i])/2;
                                        d1[b] = r1;
                                    }
                                    b++;
                                }
                            }
                        }
                        Arrays.sort(d1);
                        double s1 = d1[n-1]*d1[n-1]*(157/50);
                        for(int i = 1; ; i++) {
                            int s2 = i*i;
                            if(s2>=s1) {
                                System.out.println(i);
                                break;
                            }
                        }
                    }
                }
            }
        }
    }
}


全部评论

相关推荐

头像
04-09 14:29
Java
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务