在二维直角坐标系中,限定横纵坐标的范围都是 [1,n][1,n]。在这个范围内,存在 mm 个探测器,这些探测器被放置在某些整点上。探测器的探测半径是 rr,问范围内 n \times nn×n 个整点有多少个被探测到了。
第一行三个整数 n,m,rn,m,r,分别表示范围的大小,探测器个数,探测半径。
接下来 mm 行,每行两个整数 x_i,y_ixi,yi 表示探测器的位置。
数据范围: 1\le n,m,r \le 1001≤n,m,r≤100,1\le x_i,y_i \le n1≤xi,yi≤n
一个整数,表示被探测到的整点数量。
输入
5 2 1 3 3 4 2
输出
8
来人!上代码:
#include<bits/stdc++.h>
using namespace std;
int a[1010][1010];
int main() {
int n,m,r;
cin>>n>>m>>r;
int x,y; int cnt = 0;
#define sqr(x) ((x)*(x))
for(int k = 1;k <= m;k++)
{
cin>>x>>y;
int x1 = x - r;
int y1 = y - r; int x2 = x + r; int y2 = y + r;
for(int i = x1;i <= x2;i++)
{
for(int j = y1;j <= y2;j++)
{
if(i<1||i>n||j<1||j>n)
continue;
if(sqr(i-x)+sqr(j-y)>r*r)
continue;
}
if(a[i][j] == 0)
{
cnt++;
}
a[i][j] = 1;
}
}
}
cout<<cnt;
return 0;
}
制作不易,给个三连吧! ! !(`・ω・´)