Beta Round #56-B: Serial Time!
問題概要
10*10*10の立体で、あるマスからflood fillする問題。
感想
座標系が分かりにくくて困った。サンプルも例によって貧弱だから確認できないし。
char board[15][15][15]; int Z, Y, X; int dx[] = {0,0,0,0,1,-1}; int dy[] = {0,0,1,-1,0,0}; int dz[] = {1,-1,0,0,0,0}; void dfs(int z, int y, int x){ if(board[z][y][x] != '.') return ; board[z][y][x] = '*'; for(int k=0; k<6; k++){ int nz = z + dz[k], ny = y + dy[k], nx = x + dx[k]; if(0<=nz && nz<Z && 0<=ny && ny<Y && 0<=nx && nx<X) dfs(nz,ny,nx); } } int main(){ scanf("%d%d%d ",&Z,&Y,&X); int i,j,k,sy,sx; REP(i,Z)REP(j,Y){ scanf("%s ",board[i][j]); } scanf("%d%d ",&sy,&sx); dfs(0,sy-1,sx-1); int ans = 0; REP(i,Z)REP(j,Y)REP(k,X){ if(board[i][j][k] == '*') ans++; } printf("%d\n",ans); return 0; }