Problem Statement
You are given int[]s customers and cost. cost[i] is the amount of money required to get customers[i] customers from the i-th city. You are only allowed to spend integer multiples of the cost for any city. For example, if it costs 9 to get 3 customers from a certain city, you can spend 9 to get 3 customer, 18 to get 6 customers, 27 to get 9 customers, but not 3 to get 1 customer, or 12 to get 4 customers. Each city has an unlimited number of potential customers. Return the minimum amount of money required to get at least minCustomers customers.
Definition
- Class:
- Hotel
- Method:
- marketCost
- Parameters:
- int, int[], int[]
- Returns:
- int
- Method signature:
- int marketCost(int minCustomers, int[] customers, int[] cost)
- (be sure your method is public)
Constraints
- minCustomers will be between 1 and 1000, inclusive.
- customers will contain between 1 and 20 elements, inclusive.
- cost will have the same number of elements as customers.
- Each element of cost and customers will be between 1 and 100, inclusive.
Examples
10
{1,2,3}
{3,2,1}
Returns: 4
Just get 12 customers from the third city.
10
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
Returns: 10
It does not matter from which city you get your customers.
12
{5, 1}
{3, 1}
Returns: 8
Get 10 customers from the first city, and 2 from the second city.
100
{9, 11, 4, 7, 2, 8}
{4, 9, 3, 8, 1, 9}
Returns: 45
99
{3,5,7,9,13,17}
{17,13,9,7,5,3}
Returns: 18
1000
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
Returns: 1000
Worst case.
999
{2,3,5,7,11,13,17,19}
{2,3,5,7,11,13,17,19}
Returns: 999
1
{100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100}
{100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100}
Returns: 100
99
{100}
{100}
Returns: 100
1000
{100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100}
{100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100}
Returns: 1000
1000
{99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99}
{99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99}
Returns: 1089
1000
{99}
{100}
Returns: 1100
Largest return value.
1000
{99,98,97,96,95,94,93,92,91,90,89,88,87,86,85,84,83,82,81,80}
{100,99,98,97,96,95,94,93,92,91,90,89,88,87,86,85,84,83,82,81}
Returns: 1011
1000
{1}
{100}
Returns: 100000
Largestest return value :)
18
{ 29, 81, 93, 62, 2, 68, 28, 57, 97, 23, 40, 56, 75, 79, 85, 11, 88, 69 }
{ 89, 4, 90, 37, 30, 87, 93, 92, 28, 39, 23, 74, 66, 61, 76, 36, 4, 48 }
Returns: 4
11
{ 11, 31, 26, 42, 79, 70, 65, 17, 95, 94, 30 }
{ 7, 29, 12, 88, 22, 61, 59, 80, 8, 39, 89 }
Returns: 7
13
{ 31, 90, 100, 54, 52, 51, 50, 41, 98, 19, 76, 8, 13 }
{ 12, 21, 50, 23, 5, 81, 24, 11, 35, 22, 76, 18, 24 }
Returns: 5
20
{ 93, 62, 36, 18, 81, 18, 100, 79, 63, 13, 63, 86, 33, 88, 56, 37, 95, 65, 49, 63 }
{ 98, 58, 82, 28, 33, 3, 36, 39, 12, 67, 32, 61, 11, 61, 68, 33, 66, 31, 36, 36 }
Returns: 6
18
{ 5, 49, 29, 68, 78, 55, 46, 85, 51, 44, 77, 8, 61, 95, 94, 30, 3, 27 }
{ 48, 15, 92, 72, 28, 81, 90, 50, 40, 61, 94, 56, 81, 24, 61, 10, 95, 99 }
Returns: 10
4
{ 49, 56, 93, 73 }
{ 69, 30, 65, 17 }
Returns: 17
8
{ 30, 10, 48, 10, 36, 38, 84, 86 }
{ 42, 17, 75, 25, 70, 10, 85, 76 }
Returns: 10
16
{ 93, 33, 85, 2, 79, 91, 32, 37, 71, 35, 61, 27, 72, 37, 14, 17 }
{ 22, 30, 11, 90, 48, 37, 42, 85, 14, 28, 23, 79, 62, 37, 22, 74 }
Returns: 11
50
{1, 20, 25}
{5, 40, 55}
Returns: 110
500
{1, 20, 25}
{5, 40, 55}
Returns: 1000
26
{5, 7, 2}
{25, 35, 10}
Returns: 130
26
{5, 7, 3}
{26, 36, 15}
Returns: 131
261
{50, 70, 30, 30, 1}
{26, 36, 15, 15, 1}
Returns: 132
12
{5, 1 }
{3, 1 }
Returns: 8
10
{1, 2, 3 }
{3, 2, 1 }
Returns: 4
100
{9, 11, 4, 7, 2, 8 }
{4, 9, 3, 8, 1, 9 }
Returns: 45
1000
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 }
{20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 }
Returns: 1000
993
{62, 1 }
{1, 2 }
Returns: 17
1000
{1, 9, 5 }
{33, 10, 6 }
Returns: 1112
1000
{99 }
{100 }
Returns: 1100
1000
{99 }
{1 }
Returns: 11
999
{1, 2, 3 }
{25, 50, 100 }
Returns: 24975
50
{8, 9 }
{7, 8 }
Returns: 44
14
{2, 4, 8 }
{3, 4, 8 }
Returns: 15
1000
{99 }
{99 }
Returns: 1089
14
{9, 6, 2 }
{12, 8, 3 }
Returns: 19
14
{6, 8, 10 }
{6, 8, 9 }
Returns: 14
33
{30, 16, 1, 33, 40, 50, 60, 70, 80, 90, 100, 100, 100, 6, 7, 8, 9, 10, 11, 12 }
{10, 6, 3, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 8, 9, 10, 11, 12 }
Returns: 15
5
{5, 100 }
{2, 1 }
Returns: 1
6
{5, 3 }
{3, 2 }
Returns: 4
999
{3, 98, 98, 98, 98, 78, 7, 78, 78, 78, 78, 78, 78, 78, 2, 32, 3, 32, 32 }
{32, 32, 1, 3, 3, 4, 75, 32, 32, 1, 3, 3, 32, 32, 32, 1, 3, 2, 3 }
Returns: 11
100
{9, 10, 1 }
{4, 5, 2 }
Returns: 45
5
{4, 5 }
{2, 3 }
Returns: 3
55
{50, 4, 1 }
{10, 2, 1 }
Returns: 13
23
{5, 7, 11 }
{5, 6, 7 }
Returns: 18
1000
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 }
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 }
Returns: 1000
100
{98, 99 }
{100, 100 }
Returns: 200
5
{10, 20, 30 }
{30, 20, 10 }
Returns: 10
192
{100, 96 }
{100, 98 }
Returns: 196
3
{95, 92, 100, 86 }
{94, 91, 99, 92 }
Returns: 91
1
{100 }
{1 }
Returns: 1
12
{1, 2, 3, 4, 5 }
{2, 2, 2, 2, 2 }
Returns: 6
1
{1, 100 }
{100, 1 }
Returns: 1
401
{20, 21 }
{19, 21 }
Returns: 382
999
{99, 50 }
{100, 51 }
Returns: 1018
997
{97, 95, 91, 70, 25, 91, 94, 99, 100, 5, 1, 25, 92, 96, 94, 99, 99, 97, 91, 31 }
{81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 2, 25, 4 }
Returns: 22
1
{99, 1, 2, 3 }
{1, 50, 50, 50 }
Returns: 1
1000
{39, 1 }
{1, 100 }
Returns: 26
9
{5, 1, 3 }
{12, 3, 8 }
Returns: 23
10
{6, 5 }
{12, 11 }
Returns: 22
110
{70, 30, 10 }
{6, 3, 2 }
Returns: 11
1000
{99, 100, 78 }
{91, 99, 79 }
Returns: 953
4
{3, 2 }
{3, 2 }
Returns: 4
19
{9, 5 }
{3, 2 }
Returns: 7
102
{7, 9 }
{7, 2 }
Returns: 24
1000
{83, 17, 15, 27, 21, 63, 62, 59, 49, 48, 8, 19, 95, 2, 10, 89, 92, 34, 52, 66 }
{14, 86, 44, 81, 34, 16, 18, 57, 25, 64, 36, 27, 35, 90, 31, 24, 21, 86, 39, 69 }
Returns: 175
1000
{21, 27, 24, 20, 29, 24, 28, 28, 22, 24, 25, 25, 21, 27, 21, 21, 25, 22, 27, 26 }
{21, 24, 22, 23, 22, 22, 21, 26, 28, 25, 27, 26, 21, 28, 29, 22, 27, 29, 25, 24 }
Returns: 755
20
{12, 15, 5 }
{3, 3, 2 }
Returns: 5
62
{61, 31 }
{30, 20 }
Returns: 40
18
{11, 1, 6 }
{5, 1, 3 }
Returns: 9
20
{10 }
{100 }
Returns: 200
2
{1, 5 }
{100, 1 }
Returns: 1
10
{9, 5 }
{6, 5 }
Returns: 10
10
{100 }
{100 }
Returns: 100
1000
{1 }
{100 }
Returns: 100000
1
{1 }
{1 }
Returns: 1
5
{50, 4, 1 }
{4, 2, 1 }
Returns: 3
20
{4, 6, 7 }
{5, 6, 8 }
Returns: 22
100
{9, 11, 4, 7, 2, 8 }
{4, 9, 3, 8, 2, 9 }
Returns: 46
8
{6, 4 }
{6, 5 }
Returns: 10
41
{5, 7 }
{50, 69 }
Returns: 407
1000
{80, 99, 98 }
{100, 100, 100 }
Returns: 1100
1
{3, 1, 10 }
{1, 2, 3 }
Returns: 1
90
{60, 90, 1 }
{50, 90, 2 }
Returns: 90
10
{5, 4 }
{20, 15 }
Returns: 40
15
{6, 1, 50, 49, 48 }
{5, 1, 50, 49, 48 }
Returns: 13
100
{12, 10, 1 }
{12, 11, 100 }
Returns: 104
180
{50, 20, 10 }
{30, 17, 9 }
Returns: 116
743
{5, 1, 1, 2, 3, 1, 2, 3, 1, 2, 3, 3 }
{3, 1, 3, 3, 2, 1, 1, 2, 3, 2, 3, 2 }
Returns: 372
1000
{1, 99 }
{100, 1 }
Returns: 11
1000
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 11, 1 }
Returns: 1000
5
{2, 3 }
{90, 100 }
Returns: 190
11
{3, 5 }
{3, 5 }
Returns: 11
999
{97, 98, 97, 98, 99, 97, 98, 97, 98, 99, 97, 98, 97, 98, 99, 97, 98, 97, 98, 99 }
{93, 97, 98, 97, 98, 99, 97, 98, 97, 98, 99, 97, 98, 97, 98, 99, 97, 98, 97, 98 }
Returns: 1023
1000
{9 }
{9 }
Returns: 1008
999
{99, 1 }
{1, 100 }
Returns: 11
1000
{100, 99 }
{2, 1 }
Returns: 11
1000
{1, 100, 50 }
{1, 100, 50 }
Returns: 1000
1000
{99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 }
{99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 }
Returns: 1089
111
{10, 7 }
{30, 28 }
Returns: 354
1000
{99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 }
{55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55 }
Returns: 605
1
{10, 2, 3 }
{3, 2, 1 }
Returns: 1
4
{2, 3 }
{3, 4 }
Returns: 6
9
{5, 7, 4 }
{4, 3, 2 }
Returns: 5
5
{100 }
{100 }
Returns: 100