📄 toj_2947.cpp
字号:
#include<cstdio>#include<cstdlib>#include<cstring>#define MAXNUM 60char m[ MAXNUM ][ MAXNUM ];int timeStamp[ MAXNUM ][ MAXNUM ];const int dir[ 4 ][ 2 ] = { 0 , -1 , 1 , 0 , 0 , 1 , -1 , 0 }; int r , c;// void timeFlood( int i0 , int j0 )// {// int i1 , j1;// bool flag = true;// for( i = 0; i < 4; i++ )// {// i1 = i0 +dir[ i ][ 0 ];// j1 = j0 + dir[ i ][ 1 ];// if( m[ i1 ][ j1 ] == '*' && !timeStamp[ i1 ][ j1 ] ){// timeStamp[ i1 ][ j1 ]void printM(){ int i , j; for( i = 0; i < r; i++ ){ for( j = 0; j < c; j++ ) printf( "%d " , timeStamp[ i ][ j ] ); printf( "\n" ); }} int main(){ int i , j , k , i1 , j1 , time , as[ 2 ]; bool flag1 , flag2; freopen( "toj_2947.in" , "r" , stdin ); freopen( "toj_2947.out" , "w" , stdout ); scanf( "%d%d" , &r , &c ); for( i = 0; i < r; i++ ) scanf( "%s" , m[ i ] ); time = 0; memset( timeStamp , 0 , sizeof( timeStamp ) ); for( flag1 = true , time = 1; flag1 ; time++ ){ for( i = 0; i < r; i++ ){ for( j = 0; j < c; j++ ){ flag2 = false; printf( "%c" , m[ i ][ j ] ); if( m[ i ][ j ] == '*' ){ flag2 = true; m[ i ][ j ] = '$'; for( k = 0; k < 4; k++ ){ i1 = i + dir[ k ][ 0 ]; j1 = j + dir[ k ][ 1 ]; if( m[ i ][ j ] == '.' ){ timeStamp[ i ][ j ] = time; m[ i ][ j ] = '*'; } } } printf( "\n" ); } if( !flag2 ){ break; flag1 = false;// goto next1; } } //next1: printM(); return 0; } /* } next: timeFlood( i , j ); */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -