2014
03-03

# And Now For Something Completely Different!

Bart and Lisa Simpson have many chores, but they don’t always do them well. So their father began keeping score, giving them credit only if a chore was done right. After a month, he showed them his record keeping.

This showed that Bart had done 3 out of 4 chores correctly and Lisa had done 2 out of 3 chores correctly. Then for a second month, Bart and Lisa did chores and the record keeping looked like this:

The father made the following chart to support the hypothesis that Bart was doing the most chores:

Lisa looked at the tables then said,"No no no, that’s not right, I’ve done more." Bart pointed at the statistics and said, "Numbers don’t lie." Lisa said, "But look, I’ve done 5 chores and you’ve only done 4. You just look good because you always run away before somebody asks you to do something. The total should give me 55% of the total chores done right." Bart laughed and ran away. Now Lisa needs your help to show the unfairness of these chore evaluations. She wants a program which computes the averages over the entire dataset and displays where the before and after averages support the opposite hypothesis than would be indicated by considering the total dataset. To be fair, she only wants to consider record keeping times when both she and Bart have chores assigned both before and after the record keeping.

The first line of each test case contains one integer N (2 <= N <= 50000) the number of chore records. Each of the next N lines in each test case contains either "Bart" or "Lisa" followed by an integer, 0 or 1. The name shows who was assigned a chore, and the integer is a value of 1 if it was done correctly, or a 0 if it was not. Both Bart and Lisa will have chores assigned to them in each dataset. Input ends when N = 0.

The first line of each test case contains one integer N (2 <= N <= 50000) the number of chore records. Each of the next N lines in each test case contains either "Bart" or "Lisa" followed by an integer, 0 or 1. The name shows who was assigned a chore, and the integer is a value of 1 if it was done correctly, or a 0 if it was not. Both Bart and Lisa will have chores assigned to them in each dataset. Input ends when N = 0.

16
Bart 1
Bart 0
Bart 1
Lisa 0
Lisa 1
Lisa 1
Bart 1
Bart 0
Bart 1
Lisa 0
Lisa 1
Lisa 1
Lisa 0
Lisa 1
Lisa 0
Lisa 0
2
Lisa 1
Bart 1
2
Lisa 0
Bart 1
0

Case 1: Bart did 4 and Lisa did 5
Trend measured in 2 parts is reversed
After chore 4: 66.6667% 0.0000% 66.6667% 55.5556%
After chore 5: 66.6667% 50.0000% 66.6667% 50.0000%
After chore 7: 75.0000% 66.6667% 50.0000% 42.8571%
Case 2: Bart did 1 and Lisa did 1
Bart and Lisa accomplished same number of chores
Case 3: Bart did 1 and Lisa did 0
Simpson's paradox not detected

1. 学算法中的数据结构学到一定程度会乐此不疲的，比如其中的2－3树，类似的红黑树，我甚至可以自己写个逻辑文件系统结构来。