+ - + + - + | | + - + + - + | | | | | | | | + - + + - + + - + + - +
O povo de ASCIIville está reconstruindo sua cidade e desenhando novas plantas. Seu trabalho é desenhar a nova cidade com base em quantos prédios eles querem.
A entrada será quantos edifícios existem. Cada edifício é metade da altura da entrada (arredondado para cima, se for ímpar), sem incluir a parte superior e inferior do edifício.
Vamos desenhar um exemplo básico de 4
+ - + + - + + - + + - + | | | | | | | | | | | | | | | | + - + + - + + - + + - +
Como você pode ver aqui, existem dois |
s em cada edifício porque a entrada era quatro. Mas há um problema! (o exemplo acima está incorreto e o exemplo na parte superior desta postagem é a saída real de 4)
Para cada edifício que não é um número primo, sua altura diminui um. Se o número é divisível por 3 , 5 ou 10 , diminui mais um. Se é divisível por dois ou mais desses números, o valor deduzido aumenta ( 10 é divisível por 10 e 5, e não é primo, por isso é deduzido por 3 ).
Vejamos um exemplo com uma entrada de 5
.
+ - + + - + | | + - + + - + + - + | | | | | | | | | | | | | | | | | | | | + - + + - + + - + + - + + - +
Aqui está um exemplo de 7
+ - + + - + + - + | | + - + + - + + - + | | | | | | | | | | | | + - + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + - + + - + + - + + - + + - + + - + + - +
E um exemplo de 10
+ - + + - + + - + | | + - + + - + + - + | | + - + | | | | | | | | | | + - + | | | | + - + | | | | | | | | | | | | | | | | | | + - + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + - + + - + + - + + - + + - + + - + + - + + - + + - + + - +
E de volta para 6
+ - + + - + | | + - + + - + + - + | | | | | | | | | | + - + | | | | | | | | | | | | + - + + - + + - + + - + + - + + - +
Regras:
- Se um número é deduzido tanto que sua altura é menor ou igual a zero, ele não é mostrado, mas resta um espaço para ele (não acredito que isso seja possível,
6
é o mais próximo que encontrei de chegar a zero) . - Espaços à direita são permitidos.
- A largura de cada edifício deve ser 2.
- Sua entrada pode ser do stdin ou codificada no programa.
- Seu programa deve ser um programa completo , sem funções.
- Seu programa deve ser capaz de 4-15 compilações. Números 0-3 e negativos não são necessários e não são especificados para fazer nada, o que significa que eles podem gerar um erro, imprimir lixo ou não fazer nada.