Węże w Pythonie Programming Challenge

Twoim zadaniem jest napisać program w języku Pascal lub Python, który ze standardowego wejścia pobiera planszę o maksymalnym rozmiarze 10x10 (minimalnym 1x1) i zbudowaną wyłącznie ze znaków '*' (gwiazdka) oraz '.' (kropka). Na planszy Twój program musi znaleźć wszystkie żywe węże, a ich liczbę należy podać na standardowe wyjście.


Dwie gwiazdki na planszy są do siebie sąsiednie, jeżeli są położone na sąsiednich polach (wartości na jednej współrzędnej obu gwiazdek są równe, a wartości na drugiej współrzędnej różnią się o jeden). Dwie gwiazdki są położone ukośnie do siebie, jeżeli wartości jednej i drugiej współrzędnej obu gwiazdek różnią się o jeden. Ukośnie położone gwiazdki nie są sąsiednie.
Ciało żywego węża zbudowane jest z przynajmniej pięciu gwiazdek, w jego ciele są dokładnie dwie gwiazdki mające dokładnie jednego sąsiada, a pozostałe gwiazdki maja po dwóch sąsiadów. Ponadto, żaden żywy wąż nie ma gwiazdek w swoim ciele, które są położone ukośnie do jakiejkolwiek innej gwiazdki na planszy spoza jego ciała. Jeżeli w ciele węża są dwie gwiazdki położone ukośnie, to maja one przynajmniej jednego wspólnego sąsiada.

Wejście

t [ilość plansz <= 10]
n m [rozmiar planszy:n wierszy i m kolumn]
[plansza]
[kolejne zestawy: rozmiary i plansza]

Wyjście

Na wyjściu należy wypisać liczbę żywych węży, w oddzielnych liniach odpowiadających kolejnym planszom z wejścia.

Przykład

Wejście:
2
5 6
**..**
*.*..*
*.*..*
*.*.**
*.*...
10 10
..........
..***.....
..**......
*.........
.*****....
....*.....
*...*.....
*.....*...
*.....**..
**....**..


Wyjście:
1 1

Węże w Pythonie Programming Challenge

contest.pl
9 September 2009 18:30
never
89
884 days ago
498 days ago
contest.pl
Upload a file instead

Your submission



waiting...

Find more challenges on Scarky.com
Powered by SPOJ Engine © Sphere Research Labs