样例输出6,跟题解做的,不知道错哪,把ans移到后面遍历增加就对了(像题解那样)
错误代码
#include<bits/stdc++.h>
using namespace std;
int n,m,r,a[101][101]={0},ans=0,x,y;
int main()
{
cin>>n>>m>>r;
for(int i=1;i<=m;i++)
{
cin>>x>>y;
a[x][y]=1;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
double r1=sqrt((x-i)*(x-i)+(y-j)*(y-j));
if(r1<=r&&a[i][j]==0)
{
a[i][j]=1;
ans++;
}
}
}
}
cout<<ans;
return 0;
}
AC代码
就把ans放到后面判断
这是改过之后的部分(讨论区不给发题解)
if(r1<=r)
{
a[i][j]=1;
}
和
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++) if(a[i][j]==1) ans++;