Nos Estados Unidos , as duas direções opostas de tráfego em uma estrada são separadas por uma linha amarela tracejada se a passagem for permitida e duas linhas amarelas sólidas se a passagem não for permitida.
(Apenas um lado pode ser tracejado para permitir a passagem desse lado, e as linhas amarelas podem significar outras coisas, como faixas centrais ou reversíveis, mas não estamos preocupados com nenhum desses casos.)
Escreva um programa que utilize uma sequência codificada de comprimento de P
execução de para passagem e N
para não passagem e imprima uma versão ASCII da estrada correspondente. Exceto pela linha central, a estrada sempre tem o mesmo padrão, que pode ser facilmente deduzido dos exemplos abaixo.
Haverá um número decimal positivo antes de cada um P
e N
na sequência de entrada. Este número define o comprimento da região de passagem ou não da parte atual da estrada.
Exemplos
Uma entrada de 12N
produziria 12 colunas de nenhuma estrada que passa (linha central todas =
):
____________
============
____________
Uma entrada de 12P
produziria 12 colunas de estrada que passa ( -
repetição da linha central ):
____________
- - - - - -
____________
Passagem e não passagem podem então ser combinadas, por exemplo 4N4P9N7P1N1P2N2P
, produziriam:
______________________________
====- - =========- - - -=-==-
______________________________
Estas são 4 colunas sem passagem , depois 4 com passagem , depois 9 sem passagem , etc.
Observe que uma zona de passagem sempre começa com um traço ( -
) no lado esquerdo, não um espaço ( ). Isso é necessário.
Detalhes
- A entrada nunca terá duas
N
zonas ou duasP
zonas seguidas. por exemplo4P5P
, nunca ocorrerá. - Você não precisa apoiar letras sem um número positivo inicial. A planície
P
sempre será1P
, a planícieN
sempre será1N
. - Pode haver espaços à direita, desde que não ultrapassem a coluna final da estrada. Pode haver uma nova linha opcional à direita.
- Em vez de um programa, você pode escrever uma função que aceita a cadeia codificada no comprimento da execução e imprime ou retorna a estrada ASCII.
- Recebe entrada de qualquer maneira padrão (stdin, linha de comando, função arg).
O código mais curto em bytes vence. O desempatador é um post anterior.