Zgłaszanie | Wszystkie zgłoszenia | Najlepsze | Lista |
AL_05_07 - Linia brzegowa |
W tym zadaniu otrzymasz kilka zeskanowanych map w postaci matrycy, o rozmiarze N na M, znaków '.' i 'X'. Każdy znak reprezentuje kwadrat o boku 1 km, który jest albo wodą '.' albo lądem 'X'.
Twoim zadaniem jest obliczenie całkowitej długości morskiej linii brzegowej wszystkich lądów i wysp przedstawionych na mapie. Morzem jest każda woda, przedstawiona na mapie, która łączy się z dowolnym brzegiem mapy. Brzeg lądu przylegający do krawędzi mapy jest traktowany jako morska linia brzegowa tego lądu. Brzegi jezior i brzegi wysp na jeziorach są pomijane i nie są doliczane do całkowitej sumy.
Wejście
Najpierw liczba map T ≤ 10.
Potem opisy poszczególnych map w następującym formacie:
W pierwszej linii dwie liczby całkowite N i M (1 ≤ N,M ≤ 5000) oznaczające wymiary mapy.
W kolejnych N liniach ciągi znaków 'X' lub '.', każdy o długości M.
Wyjście
Dla każdej mapy, jedna liczba będąca całkowitą sumaryczną długością (w km) morskiej linii brzegowej wszystkich lądów i wysp na mapie. Każda suma w oddzielnej linii.
Przykład
Wejście: 2 5 6 .XXXX. .X.XX. XXX... ....X. ...... 3 3 .X. X.X .X. Wyjście: 20 12
Dodane przez: | narbej |
Data dodania: | 2013-04-03 |
Limit czasu wykonania programu: | 1s-3s |
Limit długości kodu źródłowego | 50000B |
Limit pamięci: | 1536MB |
Cluster: | Cube (Intel G860) |
Języki programowania: | All except: ASM64 GOSU |
Pochodzenie: | ALGOLIGA |