#include #include #define MAXN 270000 #define toint(a,b,c) (((a)<<14)+((b)<<7)+(c)) #define D printf("%c",ch); #undef D int m[2700000]; int r,v,s; int ch; int komp; unsigned int cena = 0; void print (unsigned val) { if (val > 999) { print (val / 1000); printf (",%03u", val % 1000); } else printf ("%u", val % 1000); } int issame(int a,int b) { int aa = a, bb = b, x; while ( m[aa] != aa) aa = m[aa]; while ( m[bb] != bb) bb = m[bb]; while ( m[a] != aa) { x = m[a]; m[a] = aa; a = x; } while ( m[b] != bb) { x = m[b]; m[b] = bb; b = x; } if (aa == bb) return 1; else return 0; } int merge(int a, int b) { int bb = b, x; if (issame(a,b)) return 0; while ( m[bb] != bb) bb = m[bb]; m[m[a]] = bb; /* bb = b; while ( m[bb] != bb) { x = m[bb]; m[bb] = m[a]; bb = x; } */ komp--; return 0; } int main (void) { int i,j,k; for (;;) { scanf("%d%d%d",&v,&r,&s); if (v == 0 && r == 0 && s == 0) return 0; komp = v*r*s; for( i =0; i < v; i++) for( j =0; j < r; j++) for( k =0; k < s; k++) m[toint(i,j,k)] = toint(i,j,k); cena = 0; for( i =0; i < v; i++) { for(j = 0; j < r; j ++) { scanf(" "); for (k = 0; k < s; k++) { ch = getchar(); if (k == s-1) break; ch = getchar(); if (ch == '-') merge(toint(i,j,k),toint(i,j,k+1)); } scanf(" "); if (j == r-1) break; for( k = 0; k < s; k++) { ch = getchar(); if (ch == '|') merge(toint(i,j,k),toint(i,j+1,k)); if (k == s-1) break; ch = getchar(); } scanf(" "); } scanf(" "); if (i == v-1) break; for(j = 0; j < r; j++) { for(k = 0; k < s; k ++) { ch = getchar(); if (ch == 'o') merge(toint(i,j,k), toint(i+1,j,k)); if (k == s-1) break; ch = getchar(); } scanf(" "); if (j == r-1) break; for(k = 0; k < s; k++) { ch = getchar(); if (k == s-1) break; ch = getchar(); } scanf(" "); } scanf(" "); } if (komp == 1) printf("Budova je jiz dostatecne propojena.\n"); else { for(i = 0; i < v; i++) { for(j = 0; j