ZOJ 1051 - A New Growth Industry

 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 

你可能感兴趣的:(ZOJ 1051 - A New Growth Industry)