• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zadanie - Jaskinie (Rekurencja)

Object Storage Arubacloud
0 głosów
184 wizyt
pytanie zadane 20 października 2018 w C i C++ przez Strupeq Nowicjusz (200 p.)
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

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
3 odpowiedzi 624 wizyt
pytanie zadane 28 listopada 2019 w Nasze poradniki przez lobo.guru Obywatel (1,920 p.)
0 głosów
1 odpowiedź 745 wizyt
pytanie zadane 13 grudnia 2017 w C i C++ przez Zu3425 Nowicjusz (120 p.)
0 głosów
2 odpowiedzi 500 wizyt
pytanie zadane 30 stycznia 2017 w C# przez mixol96 Nowicjusz (180 p.)

92,575 zapytań

141,425 odpowiedzi

319,650 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...