Facebook Hacker Cup 2015 Round 1
The fine people of Corpro Corp. are a festive bunch. Every holiday season, everybody buys a gift for their manager. A cynic might say that the employees are just trying to bribe their way to a better performance review, but if you asked them yourself, they'd say they just wanted to spread cheer.
The fine people of Corpro Corp. are a frugal bunch. When they buy gifts, they cooperate to collectively buy the least expensive gifts that they can. A cynic might say that the employees are cheap, but if you asked them yourself, they'd say it's the thought that counts.
There are employees working at Corpro Corp., and each of them has a manager, except for the CEO who has no manager (the CEO also buys a gift every year, but she donates it to charity).
The employees each have a unique employee ID which is an integer from to . As you might expect, the CEO has the ID .
If there exists a set of two or more employees such that, for all , is the manager of , then we say that is "responsible for" .
There are never two employees who are responsible for each other.
That would be a silly hierarchy indeed.
There are kinds of gifts available for purchase, and the kind of gift costs dollars. That is, the prices of the different kinds of gifts are . There are copies of each gift available for purchase.
The only thing that stops all employees from purchasing gifts that cost is the awkwardness of buying a gift for their manager that's the same as the one their manager is giving away. No employee would ever do such a thing!
For example, in a company with just 2 employees, at least must be spent in total. If employee #1 (the CEO) buys a gift to donate to charity, then employee #2 cannot buy a gift for employee #1 (their manager), but they can buy a gift instead. Note that it would be equally optimal for the CEO to buy a gift, while receiving a gift from her subordinate.
What's the minimum possible total expenditure across the whole company during the gift exchange?
Input
Input begins with an integer , the number of corporate hierarchies to consider.
Each hierarchy is made up of two lines.
The first line contains the integer .
The second line contains space-separated integers.
The integer is the employee ID of the manager of employee , with the exception that the first integer is always , denoting that the CEO has no manager.
Output
For the hierarchy, print a line containing Case #i:
followed by the smallest amount of money the entire company would need to spend.
Constraints
NOTE: The input file is about 10-20MB.
Explanation of Sample
In the first test case, the CEO will spend , and the other employees will spend .
In the second test case, employees #2 and #3 will spend , and the other employees will spend .
Sample Input
5
3
0 1 1
8
0 1 1 2 2 3 3 3
5
0 1 2 3 4
9
0 1 2 3 4 5 5 5 5
8
0 1 1 1 1 2 2 2
Sample Output
Case #1: 4
Case #2: 10
Case #3: 7
Case #4: 12
Case #5: 11
Comments
Wait, do the line of integers represent the number of higher ups or the ID number of the ith employee?