首页 > 试题广场 >

搭配出售

[编程题]搭配出售
  • 热度指数:3385 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

服装店新进了a条领带,b条裤子,c个帽子,d件衬衫,现在要把这些搭配起来售卖。有三种搭配方式,一条领带和一件衬衫,一条裤子和一件衬衫,一个帽子和一件衬衫。卖出一套领带加衬衫可以得到e元,卖出一套裤子加衬衫可以得到f元,卖出一套帽子加衬衫可以得到g元。现在你需要输出最大的获利方式


输入描述:

 一行7个整数分别表示a,b,c,d,e,f,g。



输出描述:

最大获利。

示例1

输入

2 3 4 5 6 7 8

输出

39

说明

4个帽子加4件衬衫获利32元,1条裤子加1件衬衫获利7元,一共得到39元。

import java.util.*;
public class Main {
    public static long cal(long d, long a, long e, long b, long f, long c, long g) {
        long cnt = 0;
        long minAd = Math.min(a, d);
        cnt += (minAd * e);
        a -= minAd;
        d -= minAd;
        long minBd = Math.min(b, d);
        cnt += (minBd * f);
        b -= minBd;
        d -= minBd;
        long minCd = Math.min(c, d);
        cnt += (minCd * g);
        c -= minCd;
        d -= minCd;
        return cnt;
    }
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int c = sc.nextInt();
        int d = sc.nextInt();
        int e = sc.nextInt();
        int f = sc.nextInt();
        int g = sc.nextInt();
        long[] arr = new long[6];
        arr[0] = cal(d, a, e, b, f, c, g);
        arr[1] = cal(d, a, e, c, g, b, f);
        arr[2] = cal(d, b, f, a, e, c, g);
        arr[3] = cal(d, b, f, c, g, a, e);
        arr[4] = cal(d, c, g, a, e, b, f);
        arr[5] = cal(d, c, g, b, f, a, e);
        Arrays.sort(arr);
        System.out.println(arr[5]);
    }
}
发表于 2022-06-23 15:31:54 回复(0)