help me:
code:
#include <bits/stdc++.h>
using namespace std;
int h,w,k;
char s[20][20];
const int D[4][2]={{-1,0},{1,0},{0,-1},{0,1}};
int dist[15][15],q[1000][2];
inline void bfs(int i,int j){
memset(dist,255,sizeof(dist));
int f=1,r=1;
q[1][0]=i,q[1][1]=j;
dist[i][j]=0;
while(f<=r){
int x=q[f][0],y=q[f][1];
++f;
for(int i=0;i<4;i++){
int xx=x+D[i][0],yy=y+D[i][1];
if(xx<1||xx>h||yy<1||yy>w)continue;
if(s[xx][yy]!='#'&&dist[xx][yy]==-1)
dist[xx][yy]=dist[x][y]+1,q[++r][0]=xx,q[r][1]=yy;
}
}
memset(q,0,sizeof(q));
}
int main(){
cin>>h>>w>>k;
for(int i=1;i<=h;i++)
for(int j=1;j<=w;j++){
char t;
cin>>t;
s[i][j]=t;
}int ans=0,s1=0;
for(int i=1;i<=h;i++){
for(int j=1;j<=w;j++){
if(s[i][j]=='#')continue;
bfs(i,j);
for(int u=1;u<=h;u++)
for(int l=1;l<=w;l++){
if(dist[u][l]==k)ans++;
}
// for(int t=1;t<=h;t++){
// for(int g=1;g<=w;g++)
// cout<<dist[t][g]<<' ';
// puts("");
// }puts("\n\n\n");
// s1++;
memset(dist,0,sizeof(dist));
}
}int l=0;
for(int i=1;i<=h;i++)
for(int j=1;j<=w;j++)
if(s[i][j]=='.')l++;
cout<<ans<<endl;
}
玄 n 关