Problem Statement
When a customer buys large quantities of a product, frequently the seller will offer a volume discount. For instance, one unit might cost 10 dollars, but might be offered in packages of 5 for 45 dollars. In such a case, it always makes sense buy the bulk lots to save money. In some other cases, however, it might not always make sense. Suppose a single unit were on sale for 8 dollars. In such a case, purchasing single units would be less expensive than purchasing a 5-pack.
You are given a
Return an
Definition
- Class:
- VolumeDiscount
- Method:
- bestDeal
- Parameters:
- String[], int
- Returns:
- int
- Method signature:
- int bestDeal(String[] priceList, int quantity)
- (be sure your method is public)
Constraints
- priceList will contain between 1 and 5 elements, inclusive.
- Each element of priceList will be formatted as described in the problem statement.
- units will be an integer between 1 and 99, inclusive, with no leading zeroes
- cost will be an integer between 1 and 999, inclusive, with no leading zeroes.
- No two values of units will be the same.
- quantity will be between 1 and 99, inclusive.
Examples
{"1 10", "5 45"}
10
Returns: 90
The first example suggested in the problem statement.
{"1 8", "5 45"}
10
Returns: 80
The second example suggested in the problem statement.
{"99 913", "97 173", "50 464", "80 565"}
18
Returns: 173
Here, every package has more units than we need, so we pick the cheapest one.
{"99 577", "97 796", "50 449"}
50
Returns: 449
{"99 577", "97 796", "50 449"}
21
Returns: 449
{"64 302","3 363"}
74
Returns: 604
{"33 895","13 838","94 565","83 761"}
21
Returns: 565
{"56 470","71 775","17 372","5 895","67 527"}
84
Returns: 899
{"32 235","2 798","3 855","30 760","94 892"}
99
Returns: 940
{"46 317","99 906","26 151"}
7
Returns: 151
{"72 290","31 805"}
59
Returns: 290
{"2 272","1 166","10 993"}
81
Returns: 8110
{"78 34"}
66
Returns: 34
{"49 650","90 90","12 999","39 279","86 93"}
40
Returns: 90
{"88 994","5 880","84 281","92 305"}
67
Returns: 281
{"97 114","57 316","67 995","29 336"}
36
Returns: 114
{"63 937","92 374","23 787","69 379","55 29"}
54
Returns: 29
{"20 483","32 898"}
34
Returns: 966
{"45 692"}
59
Returns: 1384
{"88 30","94 841","17 293","5 111"}
88
Returns: 30
{"74 531","29 903","85 276","15 274","12 620"}
96
Returns: 550
{"53 147","30 2","84 194"}
46
Returns: 4
{"30 565","33 568","69 477","58 77","59 765"}
3
Returns: 77
{"88 335"}
26
Returns: 335
{"52 869","53 620","57 775","94 232","42 392"}
79
Returns: 232
{"2 272", "1 166", "10 993" }
81
Returns: 8110
{"2 272", "1 166", "10 993" }
85
Returns: 8654
{"10 1", "3 2", "1 100" }
12
Returns: 2
{"3 15", "7 34" }
11
Returns: 60
{"2 2", "3 3" }
5
Returns: 5
{"16 511", "3 783", "9 127", "21 759", "18 590" }
3
Returns: 127
{"5 100", "3 63", "6 126" }
9
Returns: 189
{"1 5", "98 1" }
99
Returns: 2
{"10 5", "6 4", "2 4" }
12
Returns: 8
{"3 200", "1 100" }
10
Returns: 700
{"2 5", "3 6", "4 7", "5 9" }
7
Returns: 13
{"1 3", "10 9", "4 4" }
12
Returns: 12
{"4 30", "20 100", "2 20" }
89
Returns: 480
{"5 5", "8 9" }
6
Returns: 9
{"15 37", "10 28" }
17
Returns: 56
{"99 913", "97 173", "50 464", "80 565" }
18
Returns: 173
{"10 500", "3 150" }
13
Returns: 650
{"99 198", "60 60" }
80
Returns: 120
{"3 10", "5 12" }
6
Returns: 20
{"3 6", "4 9" }
4
Returns: 9
{"3 100", "2 49" }
3
Returns: 98
{"3 3", "4 4" }
4
Returns: 4
{"2 272", "1 166", "10 993", "9 900" }
81
Returns: 8100
{"10 200", "20 100" }
10
Returns: 100
{"32 2", "97 7" }
97
Returns: 7
{"1 5", "5 14", "3 9" }
7
Returns: 23
{"50 500", "9 99" }
63
Returns: 693
{"5 10", "4 8", "1 500" }
97
Returns: 194
{"1 10", "5 45" }
6
Returns: 55
{"5 10", "6 11" }
14
Returns: 30
{"10 11", "9 7" }
19
Returns: 18
{"1 8", "5 20" }
8
Returns: 40
{"3 99", "2 80" }
7
Returns: 259
{"2 272", "7 166", "5 993" }
81
Returns: 1992
{"10 40", "50 100" }
20
Returns: 80
{"12 300", "8 196", "5 123" }
41
Returns: 1007
{"1 1", "5 1" }
4
Returns: 1
{"6 51", "5 50" }
10
Returns: 100
{"3 5" }
8
Returns: 15
{"20 1", "1 100" }
81
Returns: 5
{"3 3", "4 4" }
10
Returns: 10
{"1 8", "90 1" }
98
Returns: 2
{"10 86", "30 357", "89 890", "87 837", "1 11" }
89
Returns: 774
{"98 100", "97 100" }
99
Returns: 200
{"98 999" }
99
Returns: 1998
{"49 490", "1 100", "2 21" }
50
Returns: 511
{"1 999", "99 99" }
2
Returns: 99
{"8 6", "9 10" }
9
Returns: 10
{"5 4", "1 1" }
6
Returns: 5
{"1 3" }
99
Returns: 297
{"3 9", "4 8", "5 9" }
7
Returns: 16
{"98 1" }
99
Returns: 2
{"2 12", "3 20" }
5
Returns: 32
{"13 130", "23 198" }
62
Returns: 588
{"10 1", "2 1" }
11
Returns: 2
{"50 100", "26 60" }
52
Returns: 120
{"98 10", "99 15" }
99
Returns: 15
{"4 4", "13 14" }
13
Returns: 14
{"9 9", "6 6", "4 4" }
10
Returns: 10
{"1 90", "10 800", "11 999" }
11
Returns: 890
{"1 1", "2 2", "3 3", "4 4", "5 5" }
99
Returns: 99
{"3 99", "5 165", "1 50", "2 80" }
7
Returns: 245
{"20 30", "30 100", "21 800" }
99
Returns: 150
{"2 272", "1 166", "10 993" }
84
Returns: 8488
{"9 90", "8 88", "2 80", "1 79" }
10
Returns: 168
{"10 10", "11 12" }
11
Returns: 12
{"4 30", "20 100", "2 30" }
89
Returns: 490
{"1 7", "3 16", "4 20" }
14
Returns: 72
{"29 30", "30 30" }
60
Returns: 60
{"3 10", "5 14" }
9
Returns: 28
{"98 1", "97 1" }
99
Returns: 2
{"2 10", "4 15" }
3
Returns: 15
{"32 32", "33 34" }
97
Returns: 98
{"10 10", "20 200" }
13
Returns: 20
{"2 272", "1 166", "10 993", "99 999", "77 234" }
99
Returns: 468
{"2 5" }
1
Returns: 5
{"3 3" }
5
Returns: 6
{"5 10", "6 12" }
20
Returns: 40
{"5 45", "2 20" }
8
Returns: 80
{"5 45", "4 45" }
7
Returns: 90
{"98 99" }
99
Returns: 198
{"1 4", "5 15", "2 7", "10 20" }
99
Returns: 200
{"2 70", "1 100", "10 200" }
81
Returns: 1670
{"3 3", "4 4" }
8
Returns: 8
{"1 20", "2 1", "3 2" }
99
Returns: 50
{"2 30", "3 20" }
1
Returns: 20
{"1 4", "5 15", "2 7", "10 20" }
8
Returns: 20
{"5 80", "4 81" }
8
Returns: 160
{"1 99", "9 1", "5 8" }
10
Returns: 2
{"99 3", "2 2" }
1
Returns: 2
{"20 4", "60 3" }
80
Returns: 6
{"5 8", "3 5" }
19
Returns: 31
{"1 10", "2 9", "3 8", "4 7", "5 6" }
99
Returns: 120
{"1 1", "2 1", "3 1", "4 1", "5 1" }
99
Returns: 20
{"12 300", "8 100", "5 123" }
41
Returns: 600
{"2 272", "1 166", "10 993" }
87
Returns: 8926
{"5 5", "2 3" }
7
Returns: 8