poj 1120 A New Growth Industry 模拟

来源:互联网 发布:银河麒麟linux下载 编辑:程序博客网 时间:2024/06/08 11:25
//poj 1120//sep9#include <iostream>using namespace std;const int SIZE=20;int D[SIZE+4],mat[SIZE+4][SIZE+4],sum[SIZE+4][SIZE+4];int dx[4]={0,0,-1,1};int dy[4]={-1,1,0,0};char ch[4]={'.','!','X','#'};int main(){int days;scanf("%d",&days);for(int i=0;i<16;++i)scanf("%d",&D[i]);for(int i=0;i<SIZE;++i)for(int j=0;j<SIZE;++j)scanf("%d",&mat[i][j]);while(days--){for(int i=0;i<SIZE;++i)for(int j=0;j<SIZE;++j){sum[i][j]=mat[i][j];for(int k=0;k<4;++k){int nx=i+dx[k];int ny=j+dy[k];if(nx>=SIZE||nx<0||ny>=SIZE||ny<0)continue;sum[i][j]+=mat[nx][ny];}}for(int i=0;i<SIZE;++i)for(int j=0;j<SIZE;++j){mat[i][j]+=D[sum[i][j]];mat[i][j]=max(mat[i][j],0);mat[i][j]=min(mat[i][j],3);}}for(int i=0;i<SIZE;++i){for(int j=0;j<SIZE;++j){printf("%c",ch[mat[i][j]]);}puts("");}return 0;}