Jogo dos Pinos
O Jogo dos Pinos é um quebra-cabeças que utiliza pinos e um tabuleiro com furos em forma de cruz. Inicialmente há apenas um furo vago, no centro do tabuleiro, e todos os outros furos contém um pino como mostra figura abaixo.
O objetivo do jogo é remover os pinos do tabuleiro de forma que reste apenas um pino. Para remover um pino é necessário fazer um movimento válido, que é definido da seguinte maneira. O jogador deve escolher um pino, chamado pivô, e uma das quatro direções (acima, abaixo, esquerda, direita) de tal forma que o pivô tenha um outro pino, chamado alvo, como vizinho imediato na direção escolhida e que o pino alvo seja seguido, também na direção escolhida, por um furo vago (chamado de destino). A figura abaixo mostra os quatro possíveis pivôs da configuração inicial do jogo.
O jogador pode então fazer o pino pivô pular sobre o pino alvo e ocupar o furo destino, removendo o pino alvo do tabuleiro. A figura abaixo mostra um exemplo (a) antes, (b) durante e (c) depois de um movimento válido.
Dada uma configuração de pinos em um tabuleiro, escreva um programa para determinar o número de movimentos válidos possíveis na configuração dada.
Entrada
A entrada é composta por sete linhas, cada linha com exatamente sete caracteres. A linhas são identificadas por números de 1 a 7. Os dois primeiros caracteres e os dois últimos caracteres das linhas 1, 2, 6 e 7 são '-' (hífen). Todos os outros caracteres são ou 'o' (letra o minúscula) representando um pino, ou '.' (ponto) representando um furo.
Saída
Seu programa deve produzir uma única linha, contendo um único inteiro, o número de movimentos válidos na configuração da entrada.
Restrições
- A seção Entrada descreve as restrições.
Exemplos
Entrada
--ooo-- --ooo-- ooooooo ooo.ooo ooooooo --ooo-- --ooo-- |
Saída
4 |
Entrada
--.o.-- --o.o-- ....o.. ....o.. o.o.o.. --o.o-- --o.o-- |
Saída
2 |