Você deve escrever um programa ou função que receba o volume de uma tigela e o volume de água nela como entrada e saída ou retorne uma representação ASCII de uma tigela com água nos volumes desejados.
Uma tigela tem a seguinte estrutura:
\ /
\___/
A tigela tem pelo menos um _
caractere. A contagem de \
's' e /
's também é positiva e é igual devido à simetria.
O volume da tigela é o número total de caracteres _
e space
entre os \
's /
' e mais um para cada par de \
e /
. Isso significa que a tigela acima tem o volume de 10
:
\ / => xxxxx x (the last one is for the \/ pair)
\___/ xxx x (the last one is for the \/ pair)
Observe que duas taças diferentes podem ter o mesmo volume. Por exemplo, as duas tigelas a seguir têm um volume de 18:
\ /
\ / \ /
\___/ \_______/
Podemos derramar um pouco de água na tigela. A água é representada como uma linha de ~
caracteres em vez de espaços dentro da tigela. A linha inferior não tem espaços, portanto não pode conter os ~
. Isso significa que nosso exemplo pode ser preenchido com água de apenas uma maneira:
\~~~~~/
\___/
Outras tigelas podem ser preenchidas de várias maneiras:
\~~~~~/ \ /
\ / \~~~/
\_/ \_/
O volume da água em uma tigela é o volume das linhas da tigela abaixo dos ~
caracteres. Os exemplos acima têm volumes de água 4, 6 and 2
respectivamente.
Entrada
- Dois números inteiros positivos, o volume da tigela e o volume da água.
- Você pode escolher a ordem dos dois números.
- Os dois números inteiros podem ser inseridos em qualquer formato de lista comum (lista, tupla, matriz etc.) ou como dois números inteiros separados.
- Pelo menos uma configuração válida de água da bacia é garantida para os valores de entrada.
Resultado
- A representação ASCII de uma tigela com água, onde os volumes da tigela e da água correspondem à entrada.
- Se você optar por retornar o resultado em vez de imprimir, ele deverá ser retornado como sequência única (ou a alternativa mais próxima do seu idioma).
- Qualquer espaço em branco à direita é permitido.
- Nenhum espaço em branco inicial desnecessário é permitido.
- Se houver várias configurações corretas, você poderá escolher qual delas será a sua, mas somente uma delas.
Exemplos
Cada par inteiro de entrada é seguido por uma ou mais saídas possíveis.
6 2
\~~~/
\_/
10 4
\~~~~~/
\___/
24 8
\ /
\~~~~~~/
\ /
\__/
42 12 //either of the two output is correct
\ /
\ /
\~~~~~~~/
\ /
\ /
\_/
\ /
\~~~~~~~~~~~~~/
\___________/
90 68
\~~~~~~~~~~~~~~~~~~~~~/
\ /
\ /
\ /
\_____________/
102 42
\ /
\ /
\~~~~~~~~~~~~~~~~~/
\ /
\ /
\___________/
Este é um código de golfe, portanto a entrada mais curta vence.