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


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

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

相关推荐

不愿透露姓名的神秘牛友
02-14 11:10
点赞 评论 收藏
分享
02-10 12:23
已编辑
新余学院 C++
采集想要offer:专业技能那里要一条一条的列出来吧,感觉你项目很厉害了,但是如果你不写技术栈面试官对你项目不太懂的话都没办法问你八股😂C++都是基架岗,都是一群9✌🏻在卷,我觉得你要是有时间学个go把MySQL和redis写上去找个开发岗吧
点赞 评论 收藏
分享
01-24 08:13
已编辑
合肥工业大学 Java
程序员牛肉:没啥问题。标准的流水线简历,但是学历好一点,所以应该是有约面的机会的。 这段时间可以考虑把自己的两个项目彻底的理一理。争取能够讲清楚每一个功能点
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务