不明白测试提交不给通过,觉得思路是正确的?????????


由题意可得,需要前一个大臣的左右手之积小于后面各个大臣的左右手之积
我在此处使用了 冒泡排序  -》 对大臣进行排序
然后将 这样排序大臣中获得最多的金币数 求出来

import java.util.Scanner;

public class Main {
  
    public  void  getMax() {
        int n;
        Scanner in=new Scanner(System.in);
        n=in.nextInt();
        int[] corn=new int[n];
        int[] left=new int[n+1];
        int[] right=new int[n+1];
        
        for(int i=0;i<n+1;i++) {
            left[i]=in.nextInt();
            right[i]=in.nextInt();
        }
        
        for(int i=1;i<n+1;i++) {
            for(int j=i+1;j<n+1;j++) {
                int mul1=left[i]*right[i];
                int mul2=left[j]*right[j];
                if(mul1>mul2){
                    swap(left,i,j);
                    swap(right,i,j);
                }
            }
        }
        
        for(int i=0;i<n+1;i++) {
            System.out.println(left[i]);
            System.out.println(right[i]);
        }
        
        int a=left[0];
        double max=-1e-7;
        for(int i=1;i<n+1;i++) {            
            corn[i-1]=a/right[i];
            if(corn[i-1]>max) {
                max=corn[i-1];                
            }
            a=corn[i-1]*right[i]*left[i];
        }        
        System.out.printf("%d",max);        
    }
    
    private void swap(int[] left, int i, int j) {
            int temp;
            temp=left[i];
            left[i]=left[j];
            left[j]=temp;
    }

    public static void main(String[] args) {
        new Main().getMax();
    }

}

全部评论
只过60%吧?数据很大,存不下哦
1 回复 分享
发布于 2020-05-27 10:28
已改为为BigInteger存储的程序  ,可是 通过率90  返回值 非零 扣10分  不太懂  由大佬指点吗 先在此🤣谢过
点赞 回复 分享
发布于 2020-05-27 10:55

相关推荐

09-27 00:29
东北大学 Java
伟大的麻辣烫:查看图片
阿里巴巴稳定性 75人发布 投递阿里巴巴等公司10个岗位
点赞 评论 收藏
分享
我是小红是我:学校换成中南
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务