赛氪OJ-专注于算法竞赛的在线评测系统 (saikr.com)
#include<bits/stdc++.h>
using namespace std;
char g[110][110];
int n,m,ans;
int dx[]={0,1,1,1,0,-1,-1,-1};
int dy[]={1,1,0,-1,-1,-1,0,1};
void dfs(int x,int y)
{
int z=0;
// for (int i=-1; i<2; i++)
for (int i=0; i<8; i++)
{
int tx = x+dx[i];
int ty = y+dy[i];
if(tx<0&&tx>=n-1&&ty<0&&ty>=m-1)continue;
if(g[tx][ty]=='*') z++;
} cout<<z;
}
int main()
{
cin>>n>>m;
getchar();
for(int i=0; i<n; i++) {
for(int j=0; j<m; j++) cin>>g[i][j];
getchar();
}
for(int i=0; i<n; i++) {
for(int j=0; j<m; j++) {
if(g[i][j]=='*')
cout<<"*";
else
dfs(i,j);
if(j+1==m)
cout<<endl;
}
}
return 0;
}