import java.io.File; import java.io.FileNotFoundException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Scanner; public class monkeys { public static void main(String[] args) throws FileNotFoundException { Scanner scanner = new Scanner(new File("monkeys.in")); int numDataSets = scanner.nextInt(); for(int i = 0; i < numDataSets; i++) { int numWords = scanner.nextInt(); int numKeys = scanner.nextInt(); double spaceProbability = scanner.nextDouble(); Map probabilities = new HashMap(); for(int j = 0; j < numKeys; j++) { String key = scanner.next(); double probability = scanner.nextDouble(); probabilities.put(key, probability); } List words = new ArrayList(); for(int k = 0; k < numWords; k++) { words.add(scanner.next()); } double totalP = 0.0; for(String word:words) { char[] chars = word.toCharArray(); double p = spaceProbability; for(char c:chars) { p *= probabilities.get(String.valueOf(c)); } totalP += p; } System.out.println("Data Set " + (i+1) + ":"); System.out.println((new java.text.DecimalFormat("0.####E0")).format(totalP)); if(i != numDataSets-1) System.out.println(); } } }