/* 2432906 2011-03-13 22:31:55 Accepted 1051 C 0 160*/ /* * Created: Mar.13-2011 * By: eeorange * Problem: A New Growth Industry */ #include <string.h> #include <stdio.h> int c[20][20], t[20][20]; /* culture dish && temporary data */ const char status[] = ".!X#"; int main(){ int nr_tms; scanf("%d", &nr_tms); while(nr_tms--){ int days, d[16], i, j; scanf("%d", &days); for(i = 0; i < 16; i++) scanf("%d", &d[i]); for(i = 0; i < 20; i++) for(j = 0; j < 20; j++) scanf("%d", &c[i][j]); while(days--){ for(i = 0; i < 20; i++) for(j = 0; j < 20; j++){ int K = c[i][j]; K += i-1 >= 0 ? c[i-1][j] : 0; K += i+1 < 20 ? c[i+1][j] : 0; K += j-1 >= 0 ? c[i][j-1] : 0; K += j+1 < 20 ? c[i][j+1] : 0; t[i][j] = c[i][j] + d[K]; if(t[i][j] > 3) t[i][j] = 3; if(t[i][j] < 0) t[i][j] = 0; } memcpy(c, t, sizeof(c)); } for(i = 0; i < 20; i++){ for(j = 0; j < 20; j++) printf("%c", status[c[i][j]]); printf("/n"); } if(nr_tms) printf("/n"); } return 0; }