#include"stdio.h" #include"string.h" int map[111][111][3]; int n,m; void fun(int x,int y) { int i,j; int t; t=0; for(i=x+1;i<n;i++) { if(map[i][y][0]==1) { t+=map[i][y][1]; } else break; } map[x][y][1]=t; t=0; for(j=y+1;j<m;j++) { if(map[x][j][0]==1) { t+=map[x][j][2]; } else break; } map[x][y][2]=t; } int main() { int t; int i,j,k; char s[250]; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&m); memset(map,0,sizeof(map)); getchar(); for(i=0;i<n;i++) { gets(s); j=0; for(k=0;s[k];k++) { if(s[k]==' ')continue; else if(s[k]=='_') { map[i][j][0]=0; map[i][j][1]=map[i][j][2]=0; j++; } else { map[i][j][0]=1; map[i][j][1]=map[i][j][2]=s[k]-'0'; j++; } } } for(i=0;i<n;i++) { for(j=0;j<m;j++) { if(map[i][j][0]==0)fun(i,j); } } for(i=0;i<n;i++) { for(j=0;j<m;j++) { if(map[i][j][0]==0) { if(map[i][j][1]==0&&map[i][j][2]==0) printf("XXXXXXX"); else if(map[i][j][1]==0&&map[i][j][2]!=0) { printf("XXX\\%03d",map[i][j][2]); } else if(map[i][j][1]!=0&&map[i][j][2]==0) { printf("%03d\\XXX",map[i][j][1]); } else { printf("%03d\\%03d",map[i][j][1],map[i][j][2]); } } else if(map[i][j][0]==1) { printf("......."); } if(j!=m-1)printf(" "); } printf("\n"); } printf("\n"); } return 0; }
作者:yyf573462811 发表于2013-4-13 17:20:46 原文链接
阅读:44 评论:0 查看评论