As pirâmides maias eram (e são) uma parte importante da arquitetura antiga, que geralmente era usada para fins religiosos.
Geralmente eram pirâmides de degraus, mas os degraus de cada uma eram íngremes demais para subir. Os padres subiam ao topo deles através de escadas alternativas para realizar cerimônias. As pirâmides também foram usadas como pontos de referência por causa de sua altura, e às vezes até usadas como locais de sepultamento para oficiais de alto escalão.
O desafio
Escreva um programa que possa imprimir um esquema de pirâmide com base nas especificações do usuário (veja abaixo).
Exigências
Faça uma entrada de duas variáveis separadas por espaço.
A entrada deve ser aceita através do STDIN (ou alternativa mais próxima).
A saída deve ser através de STDOUT (ou alternativa mais próxima).
Entrada
Altura como qualquer número inteiro positivo. Isso é usado como a largura do nível base (em blocos). Cada nível subsequente da pirâmide tem a largura
n - 1
onden
é a largura do piso anterior (em blocos).Tamanho do bloco que será 1 ou qualquer número inteiro positivo, ímpar ≤ (menor que) 10.
Blocos
O tamanho do bloco determinado determina a largura (e a altura) de cada peça individual. Essencialmente, existem i^2
espaços dentro da caixa visível, onde i
está o tamanho do bloco.
Um bloco 1x1 ficaria assim:
+++
| |
+++
Enquanto um bloco 5x5 ficaria assim:
+++++++
| |
| |
| |
| |
| |
+++++++
Blocos horizontalmente adjacentes
Os blocos horizontalmente lado a lado devem ter suas paredes do meio fundidas em uma.
Você deve ter isso:
+++++
| | |
+++++
Em vez de algo como isto:
++++++
| || |
++++++
Blocos verticalmente adjacentes (bônus de -5%)
Blocos lado a lado verticalmente têm uma exceção especial: a parede do meio pode ser mesclada em uma.
Então, em vez de blocos 1x1 parecidos com este:
+++
| |
+++
+++++
| | |
+++++
Eles poderiam ficar assim:
+++
| |
+++++
| | |
+++++
Exemplos
Input: 3 1
Output:
+++
| |
+++
+++++
| | |
+++++
+++++++
| | | |
+++++++
OR
+++
| |
+++++
| | |
+++++++
| | | |
+++++++
Input: 2 3
Output:
+++++
| |
| |
| |
+++++
+++++++++
| | |
| | |
| | |
+++++++++
OR
+++++
| |
| |
| |
+++++++++
| | |
| | |
| | |
+++++++++
Placar
Para ser classificado no placar, coloque sua resposta neste formato:
# Language, Score
Ou se você receber o bônus -5%:
# Language, Score (Bytes - 5%)
Sua pontuação é apenas um número inteiro. Se sua pontuação for decimal, arredondar para o número inteiro.
3 2
produziria?
2 3
, seria sair quando n - 1 = 0
, onde n
é a largura do piso anterior em blocos.
1 1
?