Bahiyyah 有一个顶点为 $P_0, P_1, \dots, P_{n-1}$ 的凸多边形,顶点按逆时针顺序排列。下标连续的两个顶点相邻,此外 $P_0$ 和 $P_{n-1}$ 也相邻。她还在多边形内部(包括边界上)指定了一个点 $Q$。
现在,Bahiyyah 决定让这个多边形沿一条直线滚动,并计算点 $Q$ 的轨迹(或路径)长度。
为了明确起见,我们设 $P_n = P_0, P_{n+1} = P_1$,并假设初始时 $P_0$ 和 $P_1$ 之间的边位于直线上。当 $P_{i-1}$ 和 $P_i$ 之间的边位于直线上时,Bahiyyah 将多边形绕顶点 $P_i$ 向前旋转,直到下一条边(即 $P_i$ 和 $P_{i+1}$ 之间的边)接触到直线。当 $P_n$ 和 $P_{n+1}$ 之间的边(即 $P_0$ 和 $P_1$ 之间的边)再次接触到直线时,她将停止滚动。
输入格式
输入包含多个测试用例,第一行是一个正整数 $T$,表示测试用例的数量,最多为 $50$。
对于每个测试用例,第一行包含一个整数 $n$ ($3 \le n \le 50$),表示给定凸多边形的顶点数。接下来的 $n$ 行按逆时针顺序描述多边形的顶点。其中第 $i$ 行包含两个整数 $x_{i-1}$ 和 $y_{i-1}$,即点 $P_{i-1}$ 的坐标。最后一行包含两个整数 $x_Q$ 和 $y_Q$,即点 $Q$ 的坐标。
保证所有坐标都在 $-10^3$ 到 $10^3$ 的范围内,且点 $Q$ 位于多边形内部或其边界上。
输出格式
对于每个测试用例,输出一行 Case #x: y,其中 $x$ 是从 1 开始的测试用例编号,$y$ 是点 $Q$ 的轨迹长度,保留 3 位小数。我们保证精确答案小数点后第 4 位不会是 4 或 5。
样例
输入 1
4 4 0 0 2 0 2 2 0 2 1 1 3 0 0 2 1 1 2 1 1 5 0 0 1 0 2 2 1 3 -1 2 0 0 6 0 0 3 0 4 1 2 2 1 2 -1 1 1 0
输出 1
Case #1: 8.886 Case #2: 7.318 Case #3: 12.102 Case #4: 14.537
说明
下图展示了第一个样例测试用例中点 $Q$ 的轨迹。