답안 #4578

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
4578 2013-11-04T14:27:21 Z KH_Lee0415 토마토 (3차원) (KOI13_tomato3D) C++
20 / 20
156 ms 22300 KB
#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;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 22300 KB Output is correct
2 Correct 4 ms 22300 KB Output is correct
3 Correct 0 ms 22300 KB Output is correct
4 Correct 0 ms 22300 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 22300 KB Output is correct
2 Correct 0 ms 22300 KB Output is correct
3 Correct 4 ms 22300 KB Output is correct
4 Correct 0 ms 22300 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 22300 KB Output is correct
2 Correct 0 ms 22300 KB Output is correct
3 Correct 0 ms 22300 KB Output is correct
4 Correct 0 ms 22300 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 16 ms 22300 KB Output is correct
2 Correct 20 ms 22300 KB Output is correct
3 Correct 28 ms 22300 KB Output is correct
4 Correct 40 ms 22300 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 22300 KB Output is correct
2 Correct 4 ms 22300 KB Output is correct
3 Correct 24 ms 22300 KB Output is correct
4 Correct 8 ms 22300 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 32 ms 22300 KB Output is correct
2 Correct 20 ms 22300 KB Output is correct
3 Correct 32 ms 22300 KB Output is correct
4 Correct 12 ms 22300 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 80 ms 22300 KB Output is correct
2 Correct 32 ms 22300 KB Output is correct
3 Correct 88 ms 22300 KB Output is correct
4 Correct 8 ms 22300 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 80 ms 22300 KB Output is correct
2 Correct 88 ms 22300 KB Output is correct
3 Correct 88 ms 22300 KB Output is correct
4 Correct 104 ms 22300 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 132 ms 22300 KB Output is correct
2 Correct 124 ms 22300 KB Output is correct
3 Correct 124 ms 22300 KB Output is correct
4 Correct 116 ms 22300 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 152 ms 22300 KB Output is correct
2 Correct 56 ms 22300 KB Output is correct
3 Correct 156 ms 22300 KB Output is correct
4 Correct 40 ms 22300 KB Output is correct