Dados dois padrões de faixa e comprimento da estrada , imprima uma representação ASCII das marcações da pista para o Serviço de Estradas e Trânsito para pintar as estradas.
Exemplo de entrada / saída
Entrada:, BTHMLRPHU
21
Eu não me importo se você pegar dois parâmetros ou concatenar o número no final da string, é inequívoco.
As entradas podem ser obtidas do STDIN, como argumento de função, variáveis de ambiente, o que fizer sentido no seu idioma.
Resultado:
! | x ## | | x x !
! B | /\ x HOV3 ## <- | -> | ^^ x HOV3 x !
! B | \/ x HOV3 ## | | | | ^^ x HOV3 x !
! | x ## | | x x !
! | x ## | | x x !
! | | ## | | | | !
! | | ## | | | | !
! | | ## | | | | !
! B | /\ | HOV3 ## <- | -> | ^^ | HOV3 | !
! B | \/ | HOV3 ## | | | | ^^ | HOV3 | !
! | x ## | | x x !
! B | /\ x HOV3 ## <- | -> | ^^ x HOV3 x !
! B | \/ x HOV3 ## | | | | ^^ x HOV3 x !
! | x ## | | x x !
! | x ## | | x x !
! | | ## | | | | !
! | | ## | | | | !
! | | ## | | | | !
! B | /\ | HOV3 ## <- | -> | ^^ | HOV3 | !
! B | \/ | HOV3 ## | | | | ^^ | HOV3 | !
! | x ## | | x x !
Cada caractere indica 0,5 metros de largura e um quilômetro de comprimento.
Especificação
Marcações de faixa
Para cada trecho de 10 km de estrada, as marcações são pintadas nos quilômetros 2, 3, 9 e 10 (do "topo" da saída). As marcações estão centralizadas na pista. Com exceção da ciclovia e da mediana, todas as pistas têm 3 metros (6 caracteres) de largura.
Caracteres de diamante e flecha ASCII não são permitidos no lugar das marcações, conforme indicado na saída de exemplo.
B
: Ciclovia.B
marcação. 1,5 metros (3 caracteres) de largura.T
: Transito. Marcação de diamanteH
: Faixa de veículos de alta ocupação.HOV3
marcaçãoL
eR
: Rodovia. Marcação de setaP
: Faixa de passagem. Marcações de sinal de intercalaçãoU
: Pista irrestrita. Sem marcações
Separadores (em ordem de precedência)
- Mediana:
##
(indicada porM
na sequência de entrada, substitui qualquer outro separador, incluindo vala) - Vala (extrema esquerda e extrema direita): ponto de
!
exclamação - As faixas HOV alternam entre
x
e a|
cada 5 km - Normal:
|
Restrições
Sua função ou programa deve:
- Imprimir em STDOUT (isso significa equivalentes
System.out.print
para Java,console.log
JavaScript, etc.) - Ser capaz de imprimir 1 a 9 pistas com 0 a 10 medianas
- Ser capaz de imprimir até 50 km de estrada (50 linhas de saída)
- Não use brechas padrão
- O espaço em branco à direita não é aceitável, com exceção de um opcional
\n
no final da saída
Maior saída possível: 3700 bytes (74 caracteres * 50 linhas).
Menor saída possível: 5 bytes (com entrada B
, 1)
Premissas
- Nenhuma mediana adjacente (a substring
MM
não ocorrerá) - A segunda linha de marcações pode ser cortada (por exemplo, se o comprimento for 9 ou 12 km)
- As faixas podem não fazer sentido logicamente (qualquer ordem é possível, por exemplo, uma faixa de curva à direita à esquerda da estrada)
Isso é código-golfe , então o código mais curto (em bytes) vence!