竞赛讨论区 > 不明白测试提交不给通过,觉得思路是正确的?????????

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


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

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();
    }

}

全部评论

(2) 回帖
加载中...
话题 回帖

本文相关内容

等你来战

查看全部

热门推荐