introduction
Des golfeurs avertis nous ont préparés pour l'inondation du jugement dernier . Les zones à risque ont été évacuées et la population s'est déplacée vers les hauteurs.
Nous avons sous-estimé le déluge (ou peut-être qu'il y avait un bogue dans le code de @ user12345). Certaines zones d'altitude approchent rapidement du niveau de la mer. Des murs doivent être érigés afin d'assurer la survie des campements désormais densément peuplés. Malheureusement, le gouvernement a un approvisionnement limité en murs.
Problème
Notre scénario apocalyptique est décrit par deux nombres sur une seule ligne, net m. Après cette ligne se trouvent des nlignes avec des mvaleurs par ligne, séparées uniquement par un seul espace. Chaque valeur sera l'un des quatre caractères.
xInfranchissable. L'eau ne peut pas couler ici. Les murs ne peuvent pas être érigés ici.-Instable. L'eau peut y circuler ici. Les murs ne peuvent pas être érigés ici..Stable. L'eau peut y circuler. Des murs peuvent être érigés ici.oCampement. L'eau peut y circuler. Si c'est le cas, tout le monde meurt. Les murs ne peuvent pas être construits ici.
L'eau coulera de tous les bords de la carte, à moins que le bord ne soit infranchissable ou qu'un mur soit construit sur la tuile. Écrivez un programme capable de produire le nombre minimum de murs requis pour protéger un campement.
Exemple d'entrée
6 7
x . . x x x x
x . . x - - x
x . x x - - x
x . o o o - .
x . o o o - .
x x x x x x x
Exemple de sortie
3
Hypothèses
- L'eau s'écoule uniquement orthogonalement
- Les campements n'existent que sous la forme d'un bloc contigu orthonagonalement par scénario
- Une solution existera toujours (bien qu'elle puisse nécessiter de grandes quantités de murs)
- Les campements ne peuvent pas être situés sur un bord, car le scénario n'aurait alors aucune solution
- 2
n<<16 - 2
m<<16 - L'entrée peut être fournie par stdin, lue depuis "city.txt" ou acceptée comme un seul argument
Le code le plus court gagne!