Implementad un programa que lee matrices de caracteres de entrada, y escribe el número de subpalabras felices contenidas en cada matriz.
Una subpalabra feliz es una ocurrencia (dentro de la matriz) de alguna de estas submatrices:
:-)
(-:
"
|
v
^
|
"
La entrada tiene varios casos. Cada caso comienza con una linea con
dos naturales positivos
.
Después vienen
lineas con
caracteres cada una, escogidos de entre
{’:’,’-’,’(’,’)’,’"’,’v’,'|','^'}.
Casos consecutivos están separados por una linea en blanco.
Para cada caso, el programa escribe en una linea el número de subpalabras felices de la matriz de entrada.
Evaluación sobre 10 puntos:
Solución lenta: 5 puntos.
Solución rápida: 10 puntos.
Entendemos como solución rápida una que es correcta, de coste lineal y capaz de superar los juegos de pruebas públicos y privados. Entendemos como solución lenta una que no es rápida, pero es correcta y capaz de superar los juegos de pruebas públicos.
Input
4 7 ::-)"-" "|(-|"| |-:-v|v :-))"vv 9 7 ^-:-)-) ||((-:| "(-:)-" ||-^:-) vv-|"|" :-)"|v| "-:-)-" ":"(-:| (-:-)-v 8 3 (^: "|" :-) v"v ^|v :-) ||v v": 8 1 ^ | " ^ | " | v 4 9 ":""-):-) "-|:^)|-" |(-:|-)-| v:(-:-:-) 10 2 "^ |^ ^^ |" "| "v || v^ || v" 9 3 ^^" ^^" ||| ""v "^" ^|| |"v "|" v-" 9 1 " " | v v " | v v 2 8 :(-::-): ::-(-:-: 6 5 "(:-^ ||:-| v^")" ^|"^^ |"||| "((-: 3 3 (-: ||| :-) 5 3 "-: |-: ^-^ ||| "-" 9 5 :-^:^ (-:"" ^^""| ""||v ||-v: vv:-) |||"" """|v (-(v: 9 9 (-:::-)-" (-:|^:-)) "|(-|"^:| |:-)"-)"" ^-))v^"|| |^((-:vv^ ^(-^"":^| |"-||-:|" "-::v-:"" 2 1 " - 4 2 "^ || v" v" 1 4 (:-) 3 1 " | v 2 5 (-(-: (-:-) 6 8 (-:(-:-^ "||^(-:| |"v:-:^" v(-:(-|| |v(:(-:v :-):-):v
Output
5 13 2 3 5 4 6 2 3 5 2 2 7 12 0 2 1 1 3 10