FNINJA - Fruit Ninja
Fruit Ninja is a juicy action game enjoyed by millions of players around the world, with squishy, splat and satisfying fruit carnage! Become the ultimate bringer of sweet, tasty destruction with every slash.
It is a very popular game on cell phones where people can enjoy cutting the fruit by touching the screen. The screen is rectangular, and all the fruit can be considered as circles, with coordinate of the center, and radius. Note that the fruit may overlap with each other. In this problem, a touch is a straight line cutting through the whole screen, scoring all the fruits it cuts or touches.
Now Fred is playing the Fruit Ninja, and seems absorbed in the game. He's desperate to create a new record, so he asks you for help. Now you are given a screen shot of the game, help him find the highest score he can get in a single touch.
The first line contains an integer T (1 ≤ T ≤ 50), indicating the number of test cases.
Each test case contains several lines. The first line contains an integer N (1 ≤ N ≤ 1000), indicating the number of fruit.
The following N lines each contains three integers Xi, Yi, Ri (-1000 ≤ X, Y ≤ 1000, 1 ≤ Ri ≤ 1000), representing a fruit on the screen, where (X, Y) is the coordinate of the center of the fruit, and Ri is the radius.
You can assume the screen is infinite.
For each test case in the input, print one line: "Case #X: Y", where X is the test case number (starting with 1) and Y is maximum number of fruit that you can cut in a single touch.
It is guaranteed that the answer will remain the same even if you expand the radius of all the fruit slightly by 10-5.
Input: 2 4 -2 5 1 5 5 1 -3 2 1 0 1 1 4 -4 5 1 3 2 1 -5 3 1 4 -3 1 Output: Case #1: 3 Case #2: 2