返回题解分享
讨论 / 题解分享/ 帖子详情

冶炼金属(编程题) - 题解

import java.util.Scanner;


// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int N=scan.nextInt();
        int A[]=new int[N];
        int B[]=new int[N];
        int max=0;
        int min=Integer.MAX_VALUE;
        for(int i=0;i<N;i++){
            A[i]=scan.nextInt();
            B[i]=scan.nextInt();
            max=Math.max(A[i]/B[i],max);
            min=Math.min(A[i]/B[i],min);
        }

        for(int i=max;i>0;i--){
            boolean res=true;
               for(int j=0;j<A.length;j++){
                   if(A[j]/i==B[j]){
                       res=true;
                   }else{
                       res=false;
                       break;
                   }
               }
               if(res){
                   max=i;
                   break;
               }
        }
       while(GetMin(min,A,B)){//找到最大不符合条件的值+1既是最小符合条件的值;
             min--;
       }
        System.out.println((min+1)+" "+max);
        scan.close();
    }

    private static boolean GetMin(int min, int[] a, int[] b) {
        for(int i=0;i<a.length;i++){
            if(a[i]/min!=b[i]){
                return false;
            }
        }
        return true;
    }


}
0 回复 0 转发 0 喜欢 2 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!