#include<stdio.h>int a[35][35];int book[35][35];int sum,m,n,c,b;int i,j;int dfs(int x,int y){ int next[4][2]={{0,1},{1,0},{0,-1},{-1,0}}; int k; int tx=1; int ty=1; for(k=0;k<=3;k++) { tx=x+next[k][0]; ty=y+next[k][1]; while((tx>=1)&&(tx<=m)&&(ty>=1)&&(ty<=n)) { if(a[tx][ty]==a[x][y]) { sum++; tx=tx+next[k][0]; ty=ty+next[k][1]; } else { if(sum>=2) { c=x+next[k][0]; b=y+next[k][1]; for(i=sum;i>0;i--) { book[c][b]=0; sum--; c=c+next[k][0]; b=b+next[k][1]; } book[x][y]=0; break; } else break; } } sum=0; } return 0;}int main(){ scanf("%d %d",&m,&n); int p,q; for(p=1;p<=m;p++) for(q=1;q<=n;q++) { scanf("%d",&a[p][q]); book[p][q]=a[p][q]; } for(p=1;p<=m;p++) for(q=1;q<=n;q++) dfs(p,q); for(p=1;p<=m;p++) for(q=1;q<=n;q++) { PRintf("%d ",book[p][q]); if(q==n) printf("/n"); } return 0; }
新闻热点
疑难解答