画图

画图
【题目描述】
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;
}
posted @ 2024-04-10 18:11  -Corlin-  阅读(85)  评论(0编辑  收藏  举报