Você conhece aquelas prateleiras empilháveis que são basicamente caixas de madeira que podem ser empilhadas juntas? Vamos simular a construção de algumas estantes de livros com arte ASCII.
Todos os nossos livros são de tamanho convenientemente uniforme e têm a seguinte aparência:
|X|
|X|
|X|
As estantes de livros são caixas individuais, sempre com três caracteres de altura por dentro (o suficiente para acomodar um livro em pé), compostas por |
caracteres à esquerda e à direita, -
caracteres para a parte superior e inferior e suficientemente largas para acomodar X
livros (onde X
é uma entrada inteiro). Por exemplo, aqui está uma estante de tamanho 3
:
|---------|
| |
| |
| |
|---------|
porque você pode colocar 3
livros nela assim
|---------|
||X||X||X||
||X||X||X||
||X||X||X||
|---------|
A entrada será dois números inteiros estritamente positivos X
e Y
, onde X
está a largura das prateleiras que temos (medidas em livros) e Y
é quantos livros temos para empilhar. Se temos mais livros do que cabem em uma única prateleira, precisamos adicionar mais prateleiras ao topo. Por exemplo, aqui está a entrada 4 wide / 6 books
:
|------------|
||X||X| |
||X||X| |
||X||X| |
|------------|
|------------|
||X||X||X||X||
||X||X||X||X||
||X||X||X||X||
|------------|
Se Y % X > 0
, significando que o número de livros não é um múltiplo inteiro do tamanho da prateleira, os livros restantes devem ficar na posição mais à esquerda (como no caso 4 6
acima) e a parte restante dessa prateleira preenchida com espaços.
Entrada
- Dois números inteiros estritamente positivos em qualquer formato conveniente , cada um
>0
. - Você pode receber a entrada em qualquer ordem (por exemplo, tamanho das prateleiras primeiro, número de livros ou vice-versa). Indique no seu envio a ordem de entrada.
- Você pode assumir com segurança que nenhuma das entradas será maior que o
[int]
tamanho padrão do seu idioma (ou equivalente).
Saída
A representação artística ASCII resultante dos livros e estantes.
Regras
- Novas linhas à esquerda ou à direita ou espaços em branco são opcionais, desde que os próprios caracteres estejam alinhados corretamente.
- Um programa completo ou uma função são aceitáveis. Se uma função, você pode retornar a saída em vez de imprimi-la.
- Se possível, inclua um link para um ambiente de teste on-line para que outras pessoas possam experimentar seu código!
- As brechas padrão são proibidas.
- Isso é código-golfe, portanto todas as regras usuais de golfe se aplicam e o código mais curto (em bytes) vence.
Exemplos adicionais
6 wide / 2 books
|------------------|
||X||X| |
||X||X| |
||X||X| |
|------------------|
2 wide / 6 books
|------|
||X||X||
||X||X||
||X||X||
|------|
|------|
||X||X||
||X||X||
||X||X||
|------|
|------|
||X||X||
||X||X||
||X||X||
|------|
4 wide / 9 books
|------------|
||X| |
||X| |
||X| |
|------------|
|------------|
||X||X||X||X||
||X||X||X||X||
||X||X||X||X||
|------------|
|------------|
||X||X||X||X||
||X||X||X||X||
||X||X||X||X||
|------------|