Witam. Proszę o jakąkolwiek wskazówkę do rozwiązania poniższego zadania. Nie potrafię skonstruować sensownego warunku podstawowego, na którym miałaby bazować moja funkcja rekurencyjna. Spędziłem nad zadaniem sporo czasu i nawet nie wystartowałem. Proszę o lekkie "popchnięcie" do przodu :)
Oto treść zadania:
W pewnym miejscu wyznaczono trójwymiarową mapę podziemi. Widać na nich rozmieszczenie i strukturę jaskiń. Mapa przedstawia prostopadłościan rozmiaru n na m na d (3<=n, m, d<=100) oznaczających odpowiednio długość, szerokość i głębokość badanego rejonu. Mapa składa się z 2 rodzajów pikseli oznaczających wolną przestrzeń lub skałę. Jaskinią jest spójny 3 wymiarowy fragment wolnej przestrzeni. Spójność oznacza sąsiedztwo pikseli (6 możliwych rodzajów sąsiedztwa: po bokach oraz góra i dół). Piksele wolnej przestrzeni na poziomie pierwszym oznaczać mogą wejścia do jaskini. Dysponując mapą należy wyznaczyć najgłębszy dostępny z powierzchni ziemi fragment podziemi, objętość największej jaskini oraz liczbę jaskiń izolowanych (do których nie ma dostępu z powierzchni).
Wejście: W pierwszym wierszu wejścia podane są liczby n, m i d (3<=n, m, d<=100) oznaczające długość, szerokość i głębokość danego obszaru. Następnie na wejściu podane są dane d kolejnych poziomów (zaczynając od powierzchni ziemi). Dane każdego poziomu to m linii po n symboli w każdej. Symbol 'x' oznacza skałę, a symbol 'o' oznacza wolną przestrzeń. Po każdym poziomie występuje pusta linia.
Wyjście: W jedynym wierszu wyjścia mają się pojawić 3 liczby oznaczające odpowiednio największą głębokość osiągalną z powierzchni ziemi, objętość największej jaskini oraz liczbę jaskiń izolowanych.
Przykład:
Wejście: Wyjście:
4 4 4 3 8 1
oxxx //rzut z góry pierwszego poziomu
xxxx //(widać 2 wejścia do jaskini)
xxxo
xxxx
ooxx
ooxx //rzut z góry drugiego poziomu
xxxo
xxxo
xxxx //rzut z góry kolejnego poziomu
xoxx
xxxx
xxxx
xxxx // izolowana jaskinia
xxxx
oooo
oooo