TopCoder problem "RecipeFraction" used in TCO05 Qual 7/8 (Division I Level One)



Problem Statement

    Each element of recipe has the form (quotes for clarity) "Amount Ingredient" where Amount is a positive integer. For example, "4 SUGAR" means the recipe calls for 4 units of SUGAR. Return what fraction of the total recipe is accounted for by the elements of ingredients (see examples for further clarifications).
 

Definition

    
Class:RecipeFraction
Method:getFraction
Parameters:String[], String[]
Returns:double
Method signature:double getFraction(String[] recipe, String[] ingredients)
(be sure your method is public)
    
 

Notes

-The return value must be within 1e-9 absolute or relative error of the actual result.
 

Constraints

-ingredients will contain between 1 and 50 elements inclusive.
-Each element of ingredients will contain between 1 and 50 characters inclusive.
-Each element of ingredients will contain only uppercase letters ('A'-'Z').
-Each element of ingredients will be distinct.
-recipe will contain between 1 and 50 elements inclusive.
-Each element of recipe will contain between 3 and 50 characters inclusive.
-Each element of recipe will have the format (quotes for clarity) "Amount Ingredient" where Amount is an integer with no leading zeros between 1 and 10 inclusive, and Ingredient is a positive length string of uppercase letters.
-Each Ingredient in recipe will be distinct.
 

Examples

0)
    
{"2 GRAPES",
 "1 APPLES",
 "3 STRAWBERRIES"}
{"APPLES"}
Returns: 0.16666666666666666
The recipe requires 2+1+3 = 6 total units. APPLES account for 1/6 of the total.
1)
    
{"2 GRAPES",
 "1 APPLES",
 "3 STRAWBERRIES"}
{"GRAPES"}
Returns: 0.3333333333333333
GRAPES account for 2/6 of the total recipe.
2)
    
{"2 GRAPES",
 "1 APPLES",
 "3 STRAWBERRIES"}
{"FROGS"}
Returns: 0.0
There are no FROGS in our recipe.
3)
    
{"1 A","1 B","1 C","5 D","4 E"}
{"A","E"}
Returns: 0.4166666666666667
The recipe requires 1+1+1+5+4=12 total units. A and E account for 1+4=5 of these 12.
4)
    
{"9 A","1 B","10 C","5 D","4 E"}
{"A","B","F"}
Returns: 0.3448275862068966

Problem url:

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

Problem stats url:

http://www.topcoder.com/tc?module=ProblemDetail&rd=8026&pm=4638

Writer:

AdminBrett

Testers:

PabloGilberto , lbackstrom , Olexiy

Problem categories:

Simple Search, Iteration