Hide

Problem E
Räkna öar

Du ska skriva ett program som räknar ut hur många sammanhängande öar det finns på ett sjökort. Sjökorten representeras av en textsträng med tecknen ‘$\sim $’ för vatten, och ‘@’ för land. Givet ett sjökort som indata ska ditt program returnera antalet fristående öar som finns på kortet. Två @-tecken anses tillhöra samma ö om de angränsar till varandra rakt i sid-led eller höjdled (diagonaler räknas alltså inte).

Input

Alla indatafiler inleds med två tal, $x$ och $y$, där $x$ anger hur många rader som sjökortet har, och $y$ anger hur många tecken det finns i varje rad. Du kan anta att $1 \le x \le 10\, 000$, och $1 \le y \le 10\, 000$. Du kan också anta att alla öar är helt ifyllda, dvs det finns inga öar som innesluter sjöar som inte är förbundna med det omgivande havet.

Output

Ett heltal, som anger antalet öar.

Sample Input 1 Sample Output 1
8 13
~~~~~~~~~~~~~
~@@~~~@~~~~~~
~@@~~@@~~~~~~
~~~~~@~~~@~@~
~~~@@~~~@@@@~
~~~~~~~@@~~@~
~~~~~~@@@@~~~
~~~~~~~~~~~~~
4
Sample Input 2 Sample Output 2
10 10
@@~~~~@@@@
~@@~~~@~~~
~@@@@@@@@@
~~~~~@~~~~
~~@@@@~~@~
@@@~~~~@@~
@~@@@@@@@~
@~~~~~~~~~
@@@@@@~~@@
~~@@@@@@@@
1

Please log in to submit a solution to this problem

Log in