当前位置: 首页 > 工具软件 > Detector > 使用案例 >

综合练习-detector

孔鸿远
2023-12-01

在二维直角坐标系中,限定横纵坐标的范围都是 [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;

}

制作不易,给个三连吧! ! !(`・ω・´)

 类似资料: