1120

ただのシミュレーション問題。

ショートコーディング:
319Bまで減った。改行コード変えれば後5B減る。猛者い人達なら余裕でもっと減らせるんだろうなぁ。疲れたからもういいやorz

#include<stdio.h>
#define C(D)d[t&1][y*22+x D]
#define N d[t&1^1][y*22+x]
#define S(v)scanf("%d",&v);
#define L for(y=1;y<21;y++){for(x=1;x<21;x++)
a[16],t,d[2][484],x,y;
main(){
    S(t)
    for(x=0;x<16;x++) S(a[x])
    L S(N)}
    
    while(t--)
        L N=(N=C()+a[C()+C(-1)+C(+1)+C(-22)+C(+22)])>3?3:N<0?0:N;}
    L putchar(".!X#"[C()]);puts("");}
}