-
Notifications
You must be signed in to change notification settings - Fork 9
/
uva 10189.cpp
50 lines (45 loc) · 1.33 KB
/
uva 10189.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <bits//stdc++.h>
using namespace std;
const int dr [] = {-1, -1, 0, 1, 1, 1, 0, -1};
const int dc [] = {0, 1, 1, 1, 0, -1, -1, -1};
int main()
{
int n, m, ka = 0;
//freopen("in.txt", "r", stdin);
//freopen("out.txt", "w", stdout);
int f = 0;
while(cin >> n >> m) {
if(n == 0 && m == 0) break;
int a[110][110];
for(int i=0; i<n+1; i++){
for(int j=0; j<m+1; j++) a[i][j] = 0;
}
string s[100];
for(int i=0; i<n; i++) cin >> s[i];
for(int i=0; i<n; i++){
for(int j=0; j<m; j++) {
if(s[i][j] == '*') continue;
for(int k=0; k<8; k++) {
int x = i + dr[k];
int y = j + dc[k];
//cout << i <<" " << j << endl <<endl;
//cout << x << " " << y << endl;
if(x >= 0 && x < n && y>=0 && y < m && s[x][y] == '*'){
a[i][j]++;
}
}
}
}
if(f) cout <<"\n";
f = 1;
cout << "Field #" << ++ka << ":\n";
for(int i=0; i<n; i++) {
for(int j=0; j<m; j++) {
if(s[i][j] == '*') cout << s[i][j];
else cout << a[i][j];
}
cout << "\n";
}
}
return 0;
}