Posted on 2008-03-24 20:16
superman 阅读(722)
评论(1) 编辑 收藏 引用 所属分类:
ZOJ
1 /* Accepted 1051 C++ 00:00.01 840K */
2 #include <iostream>
3
4 using namespace std;
5
6 int main()
7 {
8 int n, m, d[16], f[20][20];
9 cin >> n;
10 while(n--)
11 {
12 cin >> m;
13 for(int i = 0; i <= 15; i++)
14 cin >> d[i];
15 for(int i = 0; i < 20; i++)
16 for(int j = 0; j < 20; j++)
17 cin >> f[i][j];
18
19 while(m--)
20 {
21 int g[20][20];
22
23 for(int i = 0; i < 20; i++)
24 for(int j = 0; j < 20; j++)
25 {
26 int k = f[i][j];
27 if(i - 1 >= 0) k += f[i - 1][j];
28 if(i + 1 < 20) k += f[i + 1][j];
29 if(j - 1 >= 0) k += f[i][j - 1];
30 if(j + 1 < 20) k += f[i][j + 1];
31
32 g[i][j] = f[i][j] + d[k];
33 if(g[i][j] < 0) g[i][j] = 0;
34 if(g[i][j] > 3) g[i][j] = 3;
35 }
36
37 for(int i = 0; i < 20; i++)
38 for(int j = 0; j < 20; j++)
39 f[i][j] = g[i][j];
40 }
41 for(int i = 0; i < 20; i++)
42 {
43 for(int j = 0; j < 20; j++)
44 switch(f[i][j])
45 {
46 case 0 : cout << '.'; break;
47 case 1 : cout << '!'; break;
48 case 2 : cout << 'X'; break;
49 case 3 : cout << '#'; break;
50 }
51 cout << endl;
52 }
53 if(n)
54 cout << endl;
55 }
56
57 return 0;
58 }
59