答案正确,但是全部re,求帮qwq
查看原帖
答案正确,但是全部re,求帮qwq
755446
chengyan楼主2023/9/12 19:59
import java.util.Scanner;
//答题思路:
//先把所有次数全部标记为true,之后如果遍历的时候不符合要求就标记为false
//最后的时候看一下true有几个就好了

public class opponent {
    public static void main(String[] args) {
        Scanner myScanner=new Scanner(System.in);
        int a=myScanner.nextInt();
        int[][] c=new int[a][3];
        int sum=0,count=0,num=0;
        int[] d=new int[a];
        //3个同学就是2+1次比较,所以比较的次数可以用等差数列求和公式求得
        int x=(a-1)+(a-1)*(a-2)/2;
        //开一个布尔数组,全部初始化为true
        boolean[] e=new boolean[x+1];
        for(int i=0;i<=x;i++){
            e[i]=true;
        }
        //输入成绩的时候捎带着求和了
        for(int i=0;i<a;i++){
            sum=0;
        for(int j=0;j<3;j++){
                c[i][j]=myScanner.nextInt();
                sum=sum+c[i][j];
            }
                d[i]=sum;
        }

        //遍历匹配,要是不符合要求就标记为false,要是遍历一遍之后还是true就让count++
        for(int y=0;y<a;y++){
            for(int i=a-1;i>y;i--){
                for(int j=0;j<3;j++){
                    if((Math.abs(c[y][j]-c[i][j])>5)||(Math.abs(d[y]-d[i])>10)){
                        e[num]=false;
                    }
                    if(e[num]==true&&j==2){
                        count++;
                        num++;
                    }
                    if(j==2){
                        num++;
                    }
                }

            }
        }


        //输出结果还为true的个数
        System.out.println(count);
    }
}
2023/9/12 19:59
加载中...