shunfurh 于 2017.09.06 10:28 提问
- Bean Counting
The CSC has decided to hold a contest to guess the number of beans in a given jar. To make it a wee bit more interesting, they decided to have the contestants guess the number of a particular kind of bean, the jar having many types of beans in it. Each participant would par $2.00 per guess.
If the guess is one off (either one greater or less) than the actual count, they get a single share of the total pot. If the guess is right on, they get two shares of the total pot.
Your task is to tally these guesses and print out how much each person wins.
The first line will contain hundreds of letters, from a - z, each representing one bean of that type of bean. There will only be 26 different types of beans. The next line contains an integer n, the number of guesses. Each of the n following line will be the guess from a contestant. A contestant can guess as many times as they like. The line will begin with a single letter, in the range A - Z, leaving only 26 possible contests. The first letter will be followed by a single space, and then up to five pairs of letter/number combinations, the letter representing the type of bean for this guess, and the number the number of that bean the contestant expects to find. The letter and the value of a guess will be separated by a ':' and each guess on lines with more than one guess will be separated by a ','.
Process to the end of file.
The amount a contestant will receive is based on shares of a pot. The pot will consist of the total of all the guesses, at $2.00 per guess. The fraction each person gets will be based on:
TotNum: total number of guesses by all contestants
TotShares: total number of shares from all contestants
OffOne: number of off-by-one guesses by that contestant
RightOn: number if right-on guesses by that contestant
(TotNum * $2.00) / TotShares * (OffOne + (RightOn * 2))
Print out all the winners, in alphabetical order, and their winnings, separated by a single space. Each winner should be on a line by itself.
Separate output for different cases by a single blank line.