Você organiza os Jogos Olímpicos e precisa construir uma piscina fantástica para a ocasião, mas os supervisores geralmente mudam de idéia em relação às dimensões e precisam de uma maneira rápida de reconstruí-la com o tamanho solicitado!
Dados dois números inteiros, L
e x
, sua tarefa é construir uma piscina de comprimento L
e x
faixas.
Como é construída uma piscina?
Ele contém um quadrado interno, cujas paredes horizontais são feitas de
L
traços consecutivos (-
) e cujas paredes verticais são feitas de3x - 1
barras (|
). Além disso,+
existem 4 sinais em cada canto. Vamos dar um exemplo (L = 10, x = 2
):+ ---------- + | | | | | | | | | | + ---------- +
Cada pista tem uma largura de 2 unidades verticais. O quadrado interno é preenchido com
x-1
separadores de faixa, consistindo em símbolosL
consecutivos horizontalmente:
. Depois de colocar os separadores de faixa, nossa piscina deve ficar assim:+ ---------- + | | | | | :::::::::: | | | | | + ---------- +
Uma piscina também contém um preenchimento (um quadrado externo), cujas paredes horizontais são (L + 4) se
-
cujas paredes verticais são (3x + 1)|
s, que circundam o quadrado interno:+ -------------- + | + ---------- + | | | | | | | | | | | :::::::::: | | | | | | | | | | | + ---------- + | + -------------- +
E essa é a nossa piscina ** de tamanho olímpico!
Especificações:
Para fins de design e funcionalidade, você tem a garantia de que
100 ≥ L ≥ 10
e15 ≥ x ≥ 2
.A saída deve ser exatamente como mostrado. A saída de um pool "verticalmente construído" * não é permitida.
Espaços à direita e à esquerda são permitidos.
Você pode receber e fornecer resultados através de qualquer método padrão .
Aplicam-se lacunas padrão .
Exemplos / casos de teste:
L = 20, x = 3 + ------------------------ + | + -------------------- + | | | | | | | | | | | :::::::::::::::::::: | | | | | | | | | | | | :::::::::::::::::::: | | | | | | | | | | | + -------------------- + | + ------------------------ + L = 50, x = 5: + ------------------------------------------------- ----- + | + ------------------------------------------------- - + | | | | | | | | | | | ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: : | | | | | | | | | | | | ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: : | | | | | | | | | | | | ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: : | | | | | | | | | | | | ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: : | | | | | | | | | | | + ------------------------------------------------- - + | + ------------------------------------------------- ----- + L = 10, x = 15 + -------------- + | + ---------- + | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | + ---------- + | + -------------- +
Isso é código-golfe , então o código mais curto em bytes vence!
* A água pode fluir se for construída verticalmente: P
** Sim, eu sei que quanto mais as pistas são e quanto menor a piscina, menos o desenho parece uma piscina!
x>=L
??L=10
ex=15
? Não haveria mais pistas do que poderiam ser colocadas na piscina? Eu poderia ser mal-entendido a intençãoRespostas:
Carvão , 32 bytes
Experimente online!
-4 graças a Neil .
AST:
fonte
-a
argumento da linha de comando.-a
Carvão ,
403937 bytesExperimente online!
Eu sei que Neil já tem uma resposta de carvão vegetal do mesmo tamanho, mas eu tomei uma abordagem um pouco diferente, então achei que também poderia postar a minha.
Explicação
fonte
B
é opcional? Bom, isso me salva dois bytes!Carvão,
40383631 bytesExperimente online! Link é a versão detalhada do código. Explicação:
As primitivas de desenho do carvão vegetal usam a contagem geral de caracteres, incluindo
+
s; no entanto, a entrada é apenas o número de-
s; portanto, precisamos adicionar 2 para obter a largura da parede interna.Calcule novamente a altura da parede interna, inclusive a linha inferior, de modo que três por pista mais uma.
Desenhe as pistas. Este é simplesmente um retângulo preenchido com
:
s separados verticalmente por duas linhas em branco (as pilcrows representam caracteres de nova linha).O
Rectangle
comando é exatamente o que precisamos para desenhar a parede interna. Editar:Box
permite que você omita seu terceiro parâmetro, economizando 2 bytes.E novamente para desenhar a parede externa, exceto um pouco mais larga e alta, e centralizada na parede interna.
fonte
T-SQL,
284281 bytesA entrada é obtida das colunas INT L e x na tabela preexistente t , de acordo com nossos métodos de entrada permitidos .
Basicamente, estou criando uma sequência longa com letras representando os caracteres repetidos (d = traços, s = espaços, c = dois pontos, b = quebra de linha) e, em seguida, SUBSTITUI todos eles no final com os preenchimentos apropriados.
Formatado:
Dentro do loop, anexo 2 linhas de espaços em branco e 1 linha de dois pontos; depois, no final, corto essa linha divisória e anexo a borda da piscina antes de executar as substituições.
EDIT : salvou 3 bytes alternando
@
para a variável usada com mais freqüência e trocando a ordem de inicialização.fonte
JavaScript (ES6),
137124 bytesJoguei um pouco no meu telefone, mais para seguir.
Tente
fonte
Python 2 ,
124120117 bytes-2 bytes graças ao Hyper Neutrino
Experimente online!
fonte
t
é desnecessário)SOGL V0.12 ,
5251 bytesExperimente aqui!
Nada mal, considerando que 20 bytes disso é uma função retangular, para a qual o carvão vegetal está embutido.
Explicação:
fonte
C # (.NET Core) , 202 bytes
Experimente online!
fonte
Python 2 ,
128126 bytesExperimente online!
-2 bytes graças a @ Mr.Xcoder
fonte
PHP , 153 bytes
Experimente online!
fonte
Python 2 , 97 bytes
Experimente online!
Python 2 , 98 bytes
Experimente online!
fonte
Carvão , 36 bytes
Experimente online!
Este é um algoritmo mais carvão-y do que minha outra resposta.
fonte
C (gcc) , 195 bytes
Experimente online!
fonte
Perl 5 , 124 + 1 (-a) = 125 bytes
Experimente online!
fonte