#Lutece3354. 往日重现
往日重现
Description
平面上有 个圆,保证这 个圆之间没有任何公共点。
reknilB 有 个问题,每个问题形如:「从 到 最少要穿过多少个圆的边界。」
你需要回答他的这些问题。
Input
第一行两个整数 。
接下来 行,每行三个整数 $a_i,b_i,r_i\ (-10^7\le a_i,b_i\le 10^7,1\le r_i\le 10^7)$,表示一个圆心在 ,半径为 的圆。保证这 个圆之间没有任何公共点。
接下来 行,每行四个整数 ,表示一次询问。保证点 和点 不在任何圆上。
Output
输出 行,每行输出对应问题的回答。
Samples
4 4
1 0 2
2 0 4
8 0 1
12 0 2
1 0 2 0
4 -1 2 0
4 -1 8 0
4 -1 12 0
0
1
2
2
Note
对于第一个询问,如图中从 点到 点,不需要穿过任何圆的边界,因此输出 ;
对于第二个询问,如图中从 点到 点,需要穿过圆 的边界,因此输出 ;
对于第三个询问,如图中从 点到 点,需要穿过圆 和圆 的边界,因此输出 ;
对于第四个询问,如图中从 点到 点,需要穿过圆 和圆 的边界,因此输出 。请注意,为了穿过最少的圆边界,移动路线可以不是一条直线。因此对于这组询问,我们只需要在移动中绕过圆 围成区域即可,一种可能的移动路径用红色线标出。
Resources
The 21st UESTC Programming Contest Preliminary