Vous faites partie de l’équipe de développement du jeu Sea Battle. Vous êtes maintenant responsable de mettre à jour l’une des statistiques les plus importantes du jeu : étant donné une grille, votre tâche consiste à déterminer combien de navires sont healthy, dead ou wounded. Vous disposez des informations suivantes :
Aucun navire ne partage de côté avec un autre. Ainsi, si deux cellules adjacentes dans la grille sont marquées comme faisant partie d’un navire, elles appartiennent au même navire.
Dans ce jeu, les navires ne forment pas forcément une ligne droite. C’est un mode avancé disponible pour les utilisateurs premium.
Si aucune bombe n’a touché un navire, alors le navire est healthy.
Si toutes les cellules d’un navire sont bombardées, alors le navire est dead.
Si seulement une partie des cellules est touchée, le navire est considéré comme wounded.
Vous devez écrire un programme qui, étant donnée la grille décrivant la situation actuelle, doit afficher le nombre de navires healthy, dead et wounded.
Input
La première ligne de l’entrée contient deux caractères r et c (1 ≤ r, c ≤ 50) indiquant respectivement le nombre de lignes et de colonnes de la grille.
Les r lignes suivantes contiennent c colonnes de caractères décrivant la grille :
. représente de l’eau (pas de navire)
s représente une cellule de navire intacte
b représente une cellule de navire bombardée
Output
Le programme doit afficher 3 nombres : le nombre de navires healthy, dead et wounded.