#include<stdio.h> int a[10][10],n,m; void dfs(int i,int j,int k){ if(i<1||i>n||j<1||j>m||a[i][j]!=0) return; a[i][j] = k; //四方向 dfs(i,j+1,k+1); dfs(i+1,j,k+1); dfs(i,j-1,k+1); dfs(i-1,j,k+1); } int main(){ scanf("%d%d",&n,&m); int i,j; dfs(1,1,1); for(i=1;i<=n;i++){ for(j=1;j<=m;j++){ printf("%3d",a[i][j]); } printf("\n"); } return 0; } /************************************************************** Problem: 1586 User: admin Language: C Result: Accepted Time:53 ms Memory:1144 kb ****************************************************************/