Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

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 T10.
Potem opisy poszczególnych map w następującym formacie:
W pierwszej linii dwie liczby całkowite N i M (1 ≤ N,M5000) 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łowego50000B
Limit pamięci:1536MB
Cluster: Cube (Intel G860)
Języki programowania:All except: ASM64 GOSU
Pochodzenie:ALGOLIGA

ukryj komentarze
2013-04-07 12:56:48 narbej
Podpowiedź => forum - FAQ


Ostatnio edytowany: 2013-04-07 16:16:54
2013-04-07 10:17:27 Filip £ubniewski
dzięki wielkie za pomoc
2013-04-07 10:15:41 narbej
Proponuję, z tym pytaniem zwrócić się kiedyś na forum spoja, teraz leć do następnych zadań i tak straciłeś dużo czasu [też moja wina].
2013-04-07 10:12:01 Filip £ubniewski
no faktycznie:) ale czemu właściwie tak jest? mniej razy ją deklaruje, potem tylko nadpisuje jej wartości w pętl, tutaj jest haczyk?

ps tak, fajnie widać tutaj sporą różnicę w czasie

Ostatnio edytowany: 2013-04-07 10:14:24
2013-04-07 10:11:35 narbej
No i synchro ios nie jest złe.
2013-04-07 10:10:06 narbej
A nie mówiłem?
"wYCIĄGNĄŁEM" ją wyżej ;-)
2013-04-07 10:01:31 narbej
Jak zauważysz na liście zgłoszeń, zaliczyłem twoim kodem zadanie. Tablicę masz deklarowaną, tak jak masz, czy to jest prawidłowe, nie mam pojęcia, kiedyś już ktoś pytał o to na forum.
Ja "wyciągnąłem" tablicę wyżej więc zadeklarowałem ją jako globalną [5000+10][5000+10]. Oczywiście od razu program na pierwszym teście dostał SIGSEGV. Ale po zmianie int na short int już było AC. Tak naprawdę, wystarczyła by może tablica bool, albo char, w zależności co tam robisz i jak ją wykorzystujesz.

Ostatnio edytowany: 2013-04-07 10:03:57
2013-04-07 09:51:08 Filip £ubniewski
Może to wina kolejki? Ja sobie te współrzędne wrzucam do niej i potem ją na bieżąco opróżniam

Ostatnio edytowany: 2013-04-07 09:51:23
2013-04-07 09:33:53 narbej
Przedostatnie zgłoszenie, trzy pierwsze ok, a wysypało się na czwartym teście [SIGSEGV] - za mała tablica?
2013-04-07 09:28:39 narbej
Twój ostatnio zgłoszony program na test z zadanie odpowiada dwa razy 22
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.