小约翰(Little Johnny)是一位备受尊敬的年轻数学家,他有一个妹妹叫贾斯蒂娜(Justina)。约翰非常疼爱他的妹妹,也很乐意帮她辅导功课,但像大多数搞科研的人一样,他并不喜欢反复解决同样的问题。不幸的是,贾斯蒂娜是个非常勤奋的学生,为了确保万无一失,她总是让约翰检查她的作业很多次。在一个阳光明媚的周五,就在著名的“五月长假”[^1]到来之前,数学老师布置了许多练习题,要求找出各种几何图形的对称轴。贾斯蒂娜很可能会花大量时间来完成这些任务。小约翰很久以前就安排好了去海边的旅行,但他觉得自己有义务帮助妹妹。很快,他想到了一个解决方案——最好编写一个程序来简化贾斯蒂娜作业的检查过程。由于约翰是数学家而非计算机科学家,而你是他最好的朋友,这项任务就落到了你的肩上。
编写一个程序,完成以下功能:
- 从标准输入读取多边形的描述,
- 确定每一个多边形的对称轴数量,
- 将结果写入标准输出。
输入格式
输入的第一行包含一个整数 $t$ ($1 \le t \le 10$),表示需要确定对称轴数量的多边形个数。接下来是 $t$ 个多边形的描述。每个描述的第一行包含一个整数 $n$ ($3 \le n \le 100\,000$),表示多边形的顶点数。在接下来的 $n$ 行中,每行包含两个整数 $x$ 和 $y$ ($-100\,000\,000 \le x, y \le 100\,000\,000$),表示多边形各顶点的坐标。多边形不一定是凸多边形,但它们没有自交——任意两条边最多只有一个公共点,即它们确实共享的公共端点。此外,没有任意一对相邻的边是平行的。
输出格式
你的程序应输出恰好 $t$ 行,第 $k$ 行包含一个整数 $n_k$,表示第 $k$ 个多边形的对称轴数量。
样例
输入 1
2 12 1 -1 2 -1 2 1 1 1 1 2 -1 2 -1 1 -2 1 -2 -1 -1 -1 -1 -2 1 -2 6 -1 1 -2 0 -1 -1 1 -1 2 0 1 1
输出 1
4 2
[^1] 在波兰,五月初有许多公共假日和国定假日。它们分别是:5月1日——劳动节(国际劳动节),5月2日——波兰国旗日,5月3日——波兰第一部宪法颁布纪念日(始于1795年)。虽然中间那个较新的节日实际上并非法定假日,但习惯上也会将其作为休息日。想象一下,如果5月1日是周一或者5月3日是周五,你就能体会到什么是“五月长假”了!