Tengo un serio problema. Tengo algunos archivos de texto donde guardo mis números muy importantes, ¡todos los importantes! Y dos y tres ...
Estos números eran tan importantes que no podía confiarlos a esos nuevos sistemas numéricos decimales o binarios. Mantuve cada número codificado en unario, así:
+--+
| |
+---+ +----+ |
| | | |
+---+ +-------+
~/two.txt
Simple y confiable: dos bucles ASCII para el número 2. Desafortunadamente, estas cosas tienden a enredarse con el tiempo y ahora me cuesta descubrir cuántos bucles hay en cada archivo. Aquí hay algunos ejemplos que trabajé a mano:
Uno:
+---+
| |
+--+ |
| |
+--+ |
| |
| |
| |
+--+ +--+
| |
+---------+
Tres:
+---------+
| +-----+ |
| | +-+ | |
| | | | | |
| | +-+ | |
| +-----+ |
+---------+
Cuatro:
+--------------+
| +--+ +--+ |
| | | | | |
+-|-----|-----|----+
| | | | | | | |
| +--+ +--+ +--+ |
+------------------+
+------------+
| |
+-----+ +-----+ |
| | | |
+-----|-----------+ | |
| | +--+ | | | |
+-+ +--|--|--+ +---------+
| | +-+ | | |
+------+ | | | |
+-------+ | |
|| | |
|+-----+
| |
+---+
Cinco:
+--------+ +--------+ +--------+
| | | | | |
| +--|-----+ +--|-----+ |
| | | | | | | | | |
+-----|--+ +-----|--+ +--------+
| | | |
+--------+ +--------+
¿Me pueden ayudar a contar mis bucles?
Estas son las reglas:
- Como guardo todo en unario codificado en ASCII, la eficiencia del espacio es muy importante para mí. Por lo tanto, este es el código de golf. El programa más pequeño en bytes gana.
- Los bucles se dibujan con los caracteres +, -, |. Cada esquina del bucle se dibuja sin ambigüedades: exactamente uno de los caracteres arriba y debajo del + será |, y exactamente uno a la derecha o izquierda será -. Dos marcas + nunca son adyacentes.
- Las hebras pueden pasar una debajo de la otra. Cuando los hilos se crucen, podrá ver el hilo "debajo" inmediatamente a ambos lados del hilo "sobre".
- Su programa debe tomar una representación de cadena del bucle (ya sea desde stdin o como un parámetro de función) y generar un número (ya sea stdout o como valor de retorno).
- Las longitudes de línea pueden no ser uniformes en el dibujo del bucle y puede haber espacios finales en cada línea.
- Puede suponer que hay al menos un bucle en la entrada.
¡Cuento con usted!
+
?