你正在参加一场星际超空间高尔夫比赛,并且已经晋级到了决赛!你非常渴望获胜,因此想要制定一套制胜策略。
在超空间高尔夫中,就像在传统高尔夫中一样,你用球杆击球,球会沿着你选择的方向运动。超空间高尔夫的场地是一个二维平面,上面分布着代表不同球洞的点。球也由一个点表示,你可以选择球的起始位置,只要它不在球洞所在的位置即可。
由于这是超空间高尔夫,玩家可以将某些球洞对连接起来,将其变成虫洞。每个球洞要么保持为普通球洞,要么最多与另一个球洞相连(不能与自身相连)。虫洞是无向连接,可以双向通行。
由于环境是无摩擦的,当你击球时,球会沿着直线运动,除非它到达一个球洞;设该球洞为 $h$。当球触碰到球洞 $h$ 时,如果 $h$ 没有连接到另一个球洞,球就会停止。如果 $h$ 连接到了另一个球洞 $h'$,那么球会立即从 $h'$ 出来,并继续沿之前的方向运动。
你知道每个球洞的位置。你想要最大化单次击球所能触碰到的不同球洞的数量。考虑到这个目标,你需要选择球的起始位置、击球方向,以及将哪些球洞对(如果有的话)连接成虫洞。球不能从虫洞所在的位置开始。当球穿过虫洞时,它进入的球洞和它出来的球洞都会计入你的总数。每个球洞只会被计算一次,即使球多次进入或从其中出来(或两者兼有)。如果球在某个球洞中停止,该球洞也会计入你的总数。
输入格式
输入的第一行包含测试用例的数量 $T$。接下来是 $T$ 个测试用例。每个测试用例的第一行包含一个整数 $N$:球洞的总数。接下来的 $N$ 行,每行包含两个整数 $X_i$ 和 $Y_i$,分别表示第 $i$ 个球洞的 $X$ 和 $Y$ 坐标。
输出格式
对于每个测试用例,输出一行 Case #x: y,其中 $x$ 是测试用例编号(从 1 开始),$y$ 是在做出上述最优决策后,你所能触碰到的不同球洞的最大数量。
数据范围
时间限制:每个测试集 30 秒。 内存限制:1GB。 $1 \le T \le 100$。 $-10^9 \le X_i \le 10^9$,对于所有 $i$。 $-10^9 \le Y_i \le 10^9$,对于所有 $i$。 $(X_i, Y_i) \neq (X_j, Y_j)$,对于所有 $i \neq j$。(没有两个球洞位于同一坐标。)
测试集 1(可见判决): $1 \le N \le 7$。
测试集 2(隐藏判决): $1 \le N \le 100$。
样例
样例输入 1
5 2 0 0 5 5 3 0 0 5 5 5 0 5 0 0 5 5 5 0 3 2 2 4 7 0 0 1 1 2 1 3 1 8 2 11 2 14 2 1 -1000000000 1000000000
样例输出 1
Case #1: 2 Case #2: 3 Case #3: 4 Case #4: 7 Case #5: 1
说明
在样例 1 中,我们可以将两个球洞连接成一个虫洞,这样通过将球打入其中任何一个,我们就能触碰到这两个球洞。注意,如果没有虫洞,球在触碰到第一个球洞时就会停下,因此不可能触碰到超过一个球洞。
在样例 2 中,我们可以连接位于 $(0, 0)$ 和 $(5, 5)$ 的球洞。然后,我们可以从位置 $(4.9, 5)$ 出发,沿正水平方向击球,使其首先触碰到位于 $(5, 5)$ 的球洞。球进入该球洞并从位于 $(0, 0)$ 的球洞出来,保持其正水平的运动方向。最后,它触碰到位于 $(5, 0)$ 的球洞并停止(因为该球洞没有连接任何虫洞)。
在样例 3 中,我们可以连接位于 $(0, 0)$ 和 $(5, 0)$ 的球洞对,以及位于 $(3, 2)$ 和 $(5, 5)$ 的球洞对。从 $(4, -1)$ 向位于 $(5, 0)$ 的球洞击球,会使球依次触碰到位于 $(5, 0)$、$(0, 0)$、$(5, 5)$ 和 $(3, 2)$ 的球洞。
在样例 4 中,我们可以连接位于 $(0, 0)$ 和 $(1, 1)$ 的球洞对,位于 $(2, 1)$ 和 $(11, 2)$ 的球洞对,以及位于 $(8, 2)$ 和 $(14, 2)$ 的球洞对。从 $(-1, 0)$ 向位于 $(0, 0)$ 的球洞击球,会使球依次触碰到以下位置的球洞:$(0, 0)$、$(1, 1)$、$(2, 1)$、$(11, 2)$、$(14, 2)$、$(8, 2)$、$(11, 2)$、$(2, 1)$ 和 $(3, 1)$。注意,尽管位于 $(11, 2)$ 和 $(2, 1)$ 的球洞被触碰了两次,但由于题目要求统计不同球洞的数量,它们各自只被计算了一次。
在样例 5 中,只有一个球洞,我们可以直接将球打入其中,而无需考虑虫洞。(顺便提一下,我们可以选择任何想要的起始位置,甚至是在球洞坐标允许范围之外的位置。)