Submission #4578

#TimeUsernameProblemLanguageResultExecution timeMemory
4578KH_Lee0415토마토 (3차원) (KOI13_tomato3D)C++98
20 / 20
156 ms22300 KiB
#include<stdio.h> int R; int box[101][101][101]; int xx[6]={0,0,0,0,1,-1}; int yy[6]={0,0,1,-1,0,0}; int zz[6]={1,-1,0,0,0,0}; int f, r; int X, Y, Z; struct data{ int x, y, z, l; void inq(int zz, int yy, int xx, int ll){ if(xx<1 || yy<1 || zz<1 || xx>X || yy>Y || zz>Z) return; if(box[zz][yy][xx]) return; x=xx, y=yy, z=zz, l=ll, r++; box[z][y][x]=1; R--; } }q[1100000]; void bfs(){ while(f<r){ for(int i=0; i<6; i++) q[r].inq(q[f].z+zz[i], q[f].y+yy[i], q[f].x+xx[i], q[f].l+1); f++; } } int main(){ int i, j, k; scanf("%d %d %d", &X, &Y, &Z); for(i=1; i<=Z; i++) for(j=1; j<=Y; j++) for(k=1; k<=X; k++) { scanf("%d", &box[i][j][k]); if(!box[i][j][k]) R++; if(box[i][j][k]==1) q[r].z=i, q[r].y=j, q[r].x=k, r++; } bfs(); printf("%d", R? -1:q[r-1].l); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...