題目描述

Taum正在計劃著要慶祝他朋友Diksha的生日。Diksha想要Taum送他兩種類型的禮物:一種是黑色的,一種是白色的。為了要讓她開心,Taum必須要買B個黑色的禮物和W個白色的禮物。



黑色禮物的花費為X單位。
白色禮物的花費為X單位。
將白色禮物轉成黑色禮物或是黑色禮物轉成白色禮物的花費為Z單位。

幫助Taum計算出購買Diksha的禮物所花費的最小值。

原題網址

輸入格式

第一行包含一個整數T,代表測試資料的數量,範圍在1到10之間(包含1和10)。

接下來的2T行,每兩行為一組測試資料。第一行為B和W兩個整數,第二行為X、Y、Z三個整數,範圍都在0到109之間(包含0和109)。

輸出格式

輸出會有T行,每行只有一個整數,表示Taum在該組測試資料中,買禮物的最小花費。

範例輸入

5
10 10
1 1 1
5 9
2 3 4
3 6
9 1 1
7 7
4 2 1
3 3
1 9 2

範例輸出

20
37
12
35
12

額外解釋

第一組測試資料:顏色轉換的花費等同直接購買白色或是黑色禮物,所以Taum只要直接購買禮物即可。所以花費為10*1+10*1=20。

第二組測試資料:顏色轉換的花費比直接購買白色或是黑色禮物還要大,所以Taum只要直接購買禮物即可。所以花費為5*2+9*3=37。

第三組測試資料:顏色轉換的花費比直接購買黑色禮物還要小很多,所以Taum若要得到黑色禮物,買白色禮物來轉換會比較划算。所以花費為9*1+3*1=12。

第四組測試資料:顏色轉換的花費比直接購買黑色禮物還要小很多,所以Taum若要得到黑色禮物,買白色禮物來轉換會比較划算。所以花費為14*2+7*1=35。

第五組測試資料:顏色轉換的花費比直接購買白色禮物還要小很多,所以Taum若要得到白色禮物,買黑色禮物來轉換會比較划算。所以花費為6*1+3*2=12。

解題概念

在每次計算花費額度的時候,先判斷黑色禮物和白色禮物哪個花費比較大,接著再判斷較便宜的禮物加上轉換所需的花費是否會依然比較貴的禮物還便宜。都挑最小的花費來計算,就是結果了。

參考答案

import java.util.Scanner;

public class Solution {

    public static void main(String[] args) {
        final Scanner sc = new Scanner(System.in);
        int testCase = sc.nextInt();
        while (testCase-- > 0) {
            final long B = sc.nextInt(), W = sc.nextInt(), X = sc.nextInt(), Y = sc.nextInt(), Z = sc.nextInt();
            if(X > Y){
                final long YZ = Y + Z;
                if(X > YZ){
                    System.out.println(B * YZ + W * Y);
                }else{
                    System.out.println(B * X + W * Y);
                }
            }else{
                final long XZ = X + Z;
                if(Y > XZ){
                    System.out.println(B * X + W * XZ);
                }else{
                    System.out.println(B * X + W * Y);
                }
            }
        }
    }
}