TopCoder problem "SupermarketDiscount" used in SRM 334 (Division II Level One)



Problem Statement

    

Three girls are shopping at a supermarket. The supermarket is having a sale: "Spend $50 or more in a single transaction and get $10 off." The girls realize that if they combine their purchases, they might be able to pay less than if they each pay separately. For example, if they are buying a total of $46, $62 and $9 worth of goods, respectively, they can combine the $46 and $9 totals and make two purchase transactions ($55 and $62) to get $20 off.

You will be given a int[] goods, each element of which is the total cost of the goods purchased by one of the girls. Return the minimal total cost required to purchase all the goods. The girls are willing to combine their purchases as described above, but no girl is willing to split up her goods across multiple transactions.

 

Definition

    
Class:SupermarketDiscount
Method:minAmount
Parameters:int[]
Returns:int
Method signature:int minAmount(int[] goods)
(be sure your method is public)
    
 

Constraints

-goods will contain exactly 3 elements.
-Each element of goods will be between 1 and 99, inclusive.
 

Examples

0)
    
{46, 62, 9}
Returns: 97
The example from the problem statement.
1)
    
{50, 62, 93}
Returns: 175
The best decision is to pay separately.
2)
    
{5, 31, 15}
Returns: 41
The only way to get the discount is to combine all three purchases into one transaction.
3)
    
{5, 3, 15}
Returns: 23
The girls have no chance of getting the discount.

Problem url:

http://www.topcoder.com/stat?c=problem_statement&pm=7358

Problem stats url:

http://www.topcoder.com/tc?module=ProblemDetail&rd=10658&pm=7358

Writer:

Andrew_Lazarev

Testers:

PabloGilberto , brett1479 , Olexiy , marian

Problem categories:

Brute Force