题目描述
九条可怜是一个贪玩的女孩子。
这天她在一堵墙钉了
接着,对每一根绳子可怜都进行了一次游戏。在第
不难发现绳子每时每刻都在以某一个位置为圆心作顺时针的圆周运动。初始情况下圆心是绳子的固定端点
图中左侧红点为钉子所在的点,右侧红点为绳子的固定端点,其他颜色的点为虚拟点,活动端点为紫点;绳子从紫点开始运动,在运行到蓝点时绳子绕上左侧红点的钉子,因此活动端点更换了圆心和半径,继续作顺时针的圆周运动。接着活动端点会运行到绿点,并且接下来活动端点会一直绕左侧钉子不停地做圆周运动。
不难发现绳子的运动是不会停止的,因此可怜在她感觉累了之后就会停下来。但是作为一个好奇心满满的女孩子,可怜决定对每一根绳子计算一下如果绳子无限的运行下去,那么它的圆心会切换多少次(包括初始的圆心)。不难发现这个数值一定是有限的。
这里对游戏过程进行一定程度的假设来简化问题:
- 活动端点在运动的过程中距离每一个钉子的欧几里得距离始终大于等于
。 - 钉子的坐标两两不同但可能有多点共线。
- 钉子的体积以及绳子的体积可以忽略不计。在游戏的过程中每一段绳子之间不会互相影响。
- 初始情况下绳子距离每一个钉子的最近欧几里得距离大于等于
。 - 每一根绳子初始粘着的端点不会影响绳子的运动,即绳子不会绕回到端点上。
输入格式
从标准输入读入数据。
第一行输入一个整数
每组数据第一行为两个整数
接下来
接下来
输出格式
输出到标准输出。
对于每组数据的每组询问,输出一行一个整数表示运行的过程中圆心变化了多少次。
不同数据组数之间无需空行隔开。
样例一
input
2
5 3
0 0
2 0
2 2
0 2
1 1
1 3 10 3 10
1 3 10 3 20
1 3 10 3 30
3 1
0 0
100 0
1000 0
1 3 10 3 1000000000
output
6
11
16
1000001
样例二
见“样例数据下载”
explanation
为了选手的身体健康,可怜决定临时加上一个大样例。但是因为是 IOI 赛制,可怜不想让大样例太强。
大样例如下图所示:
其中两种颜色的”点“分别表示钉子和询问。为什么询问看起来像是一个点呢,因为每一个询问都是长度为
不难发现每一个询问的答案都是
限制与约定
对于前
对于前
对于前
对于前
对于
对于
时间限制:
空间限制: