En los Estados Unidos , las dos direcciones opuestas del tráfico en una carretera están separadas por una línea amarilla discontinua si se permite el paso y dos líneas amarillas continuas si no se permite el paso.

(Solo un lado puede ser punteado para permitir pasar por ese lado, y las líneas amarillas pueden significar otras cosas como el centro o los carriles reversibles, pero no nos preocupa ninguno de esos casos).
Escriba un programa que tome una cadena codificada de longitud de ejecución de Ppara pasar y Npara que no pase , e imprime una versión ASCII de la carretera correspondiente. Excepto por la línea central, la carretera siempre tiene el mismo patrón, que puede deducirse fácilmente de los ejemplos a continuación.
Habrá un número decimal positivo antes de cada uno Py Nen la cadena de entrada. Este número define la longitud de la región de paso o no paso de la parte actual de la carretera.
Ejemplos
Una entrada de 12Nproduciría 12 columnas de camino sin paso (línea central todas =):
____________
============
____________
Una entrada de 12Pproduciría 12 columnas de camino de paso (línea central que se - repite):
____________
- - - - - -
____________
Pasar y no pasar se puede combinar, por ejemplo 4N4P9N7P1N1P2N2P, produciría:
______________________________
====- - =========- - - -=-==-
______________________________
Estas son 4 columnas que no pasan , luego 4 que pasan , luego 9 que no pasan , etc.
Tenga en cuenta que una zona de paso siempre comienza con un guión ( -) en el lado izquierdo, no un espacio ( ). Esto es requerido.
Detalles
- La entrada nunca tendrá dos
Nzonas o dosPzonas en una fila. por ejemplo4P5P, nunca ocurrirá. - No necesita admitir letras sin un número positivo principal. La llanura
Psiempre será1P, la llanuraNsiempre será1N. - Puede haber espacios finales siempre que no se extiendan más allá de la columna final del camino. Puede haber una nueva línea final opcional.
- En lugar de un programa, puede escribir una función que tome la cadena codificada de longitud de ejecución e imprima o devuelva el camino ASCII.
- Toma información de cualquier manera estándar (stdin, línea de comando, función arg).
El código más corto en bytes gana. Tiebreaker es una publicación anterior.