画图
画图
【题目描述】
DD在做图纸上的二维坐标系里画了 n个点,现在已知第 i个点的坐标是 (xi,yi),但她现在不小心将墨水倒在了纸上,现在假设墨水覆盖的地方是一个圆形,而这个圆的圆心坐标和半径也已知,请问墨水覆盖了多少个点。
【输入】
第一行一个整数表示 n。
第二行三个整数 X,Y,R分别表示圆心的坐标和半径。接下来n行,每行两个整数 xi,yi表示点的坐标。
【输出】
共一行,输出有多少个点被覆盖了。
【输入样例】
5
1 5 8
2 5
3 5
3 4
2 3
20 20
【输出样例】
4
【提示】
数据范围:
对于 30% 的数据,1≤n≤1000。
对于 60% 的数据,1≤n≤10000。
对于100% 的数据,1≤n≤100000,0≤R≤10,−106≤xi,yi≤106。
【题解】
#include<bits/stdc++.h>
#include<math.h>
using namespace std;
int main(){
long n,cnt=0;
cin>>n;
long x,y,r;
cin>>x>>y>>r;
for(int i=0;i<n;i++){
int x1,y1;
cin>>x1>>y1;
double d = sqrt(pow((x1-x),2) + pow((y1-y),2));
if(d<=r) cnt++;
}
cout<<cnt;
return 0;
}