Aux États-Unis , les deux sens de circulation opposés sur une route sont séparés par une ligne jaune en pointillés si le dépassement est autorisé et deux lignes jaunes continues si le dépassement n'est pas autorisé.

(Un seul côté peut être pointillé pour permettre de passer de ce côté, et les lignes jaunes peuvent signifier d'autres choses comme les voies centrales ou réversibles, mais nous ne sommes concernés par aucun de ces cas.)
Écrivez un programme qui accepte une chaîne codée de longueurP pour passer et Npour ne pas passer , et imprime une version ASCII de la route correspondante. À l'exception de la ligne médiane, la route a toujours le même schéma, ce qui peut être facilement déduit des exemples ci-dessous.
Il y aura un nombre décimal positif avant chaque Pet Ndans la chaîne d'entrée. Ce nombre définit la longueur de la zone de passage ou pas de passage de la partie actuelle de la route.
Exemples
Une entrée de 12Nproduirait 12 colonnes de route sans passage (ligne centrale toutes =):
____________
============
____________
Une entrée de 12Pproduirait 12 colonnes de route de passage ( - répétition de la ligne médiane ):
____________
- - - - - -
____________
La réussite et la non-réussite peuvent alors être combinées, par exemple 4N4P9N7P1N1P2N2Pproduiraient:
______________________________
====- - =========- - - -=-==-
______________________________
Ce sont 4 colonnes sans passage , puis 4 sans passage , puis 9 sans passage , etc.
Notez qu'une zone de passage commence toujours par un tiret ( -) sur le côté le plus à gauche, pas un espace ( ). Ceci est nécessaire.
Détails
- L'entrée n'aura jamais deux
Nzones ou deuxPzones d'affilée. par exemple4P5P, ne se produira jamais. - Vous n'avez pas besoin de prendre en charge les lettres sans un nombre positif en tête. La plaine
Psera toujours1P, la plaineNsera toujours1N. - Il peut y avoir des espaces de fuite tant qu'ils ne s'étendent pas au-delà de la dernière colonne de la route. Il peut y avoir une nouvelle ligne de fin facultative.
- Au lieu d'un programme, vous pouvez écrire une fonction qui prend la chaîne encodée de longueur d'exécution et imprime ou renvoie la route ASCII.
- Prend l'entrée de n'importe quelle manière standard (stdin, ligne de commande, fonction arg).
Le code le plus court en octets gagne. Tiebreaker est un post antérieur.