2882 圆形重叠
2882 圆形重叠
经验值:1200
题目描述 Description
在一个直角坐标系中,有N个半径为R的圆形。
现在给出每一个圆形的圆心,请判断所有的圆形是否有重叠。
输入数据保证每一个圆形的圆心不重合。
注:判断两个圆形是否重叠,即判断两个圆形的中心距离是否大于两倍的半径R。
注2:对于两个圆的圆心坐标(a,b)和(x,y),它们之间的距离是sqrt(pow(a-x, 2)+pow(b-y, 2))。
输入描述 Input Description
第一行,两个正整数, N , R 其中2 ≤ N ≤ 50,000 ,1 ≤ R ≤ 1,000,000
接下来N行,每行有两个整数xi,yi,描述了第i个圆形的圆心。其中xi,yi均在[-1,000,000,1,000,000]内
输出描述 Output Description
如果存在两个圆重叠,则输出1
否则输出0
样例输入 Sample Input
2 5
1 1
100 100
样例输出 Sample Output
0
1 分析样例
如果我们遇到难题,那么第一步就应该是分析样例
样例输入 Sample Input
2 5
1 1
100 100
样例输出 Sample Output
0
∵(因为符号)sqrt(pow(a-x, 2)+pow(b-y, 2))>2r
∴(所以符号)无重叠,输出0.
2 部分代码
1) 存r const int r=R(其实不存也阔以)
2) 判断 如果(sqrt(pow(a-x, 2)+pow(b-y, 2))>2*r){输出。。。}
否则输出。。。