Dovresti scrivere un programma o una funzione che riceva il volume di una ciotola e il volume dell'acqua in esso come input e output o restituisca una rappresentazione ASCII di una ciotola con acqua con i volumi desiderati.
Una ciotola ha la seguente struttura:
\ /
\___/
La ciotola ha almeno un _
personaggio. Anche il conteggio di \
"se /
" è positivo e sono uguali a causa della simmetria.
Il volume della ciotola è il numero totale di _
e space
caratteri tra \
'e /
' più uno per ogni coppia di \
e /
. Ciò significa che la ciotola sopra ha il volume di 10
:
\ / => xxxxx x (the last one is for the \/ pair)
\___/ xxx x (the last one is for the \/ pair)
Si noti che due diverse vasche potrebbero avere lo stesso volume. Ad esempio, entrambe le seguenti ciotole hanno un volume di 18:
\ /
\ / \ /
\___/ \_______/
Possiamo versare un po 'd'acqua nella ciotola. L'acqua è rappresentata da una fila di ~
personaggi anziché da spazi all'interno della ciotola. La riga in basso non ha spazi, quindi non può contenere quelli ~
. Ciò significa che il nostro esempio può essere riempito d'acqua solo in un modo:
\~~~~~/
\___/
Altre ciotole possono essere riempite in più modi:
\~~~~~/ \ /
\ / \~~~/
\_/ \_/
Il volume dell'acqua in una ciotola è il volume delle file della ciotola sotto i ~
caratteri. Gli esempi sopra hanno volumi d'acqua 4, 6 and 2
rispettivamente.
Ingresso
- Due numeri interi positivi, il volume della ciotola e il volume dell'acqua.
- Puoi scegliere l'ordine dei due numeri.
- I due numeri interi possono essere immessi in qualsiasi formato di elenco comune (elenco, tupla, matrice, ecc.) O come due numeri interi separati.
- Per i valori di input è garantita almeno una configurazione valida per l'acqua della vasca.
Produzione
- La rappresentazione ASCII di una ciotola con acqua in cui la vasca e i volumi d'acqua corrispondono all'ingresso.
- Se si sceglie di restituire il risultato anziché la stampa, è necessario restituirlo come stringa singola (o l'alternativa più vicina alla propria lingua).
- È consentito qualsiasi spazio bianco finale.
- Non è consentito alcun spazio bianco iniziale non necessario.
- Se ci sono più configurazioni corrette, sei libero di scegliere quale output ma puoi solo generare uno di essi.
Esempi
Ogni coppia di numeri interi di input è seguita da una o più uscite possibili.
6 2
\~~~/
\_/
10 4
\~~~~~/
\___/
24 8
\ /
\~~~~~~/
\ /
\__/
42 12 //either of the two output is correct
\ /
\ /
\~~~~~~~/
\ /
\ /
\_/
\ /
\~~~~~~~~~~~~~/
\___________/
90 68
\~~~~~~~~~~~~~~~~~~~~~/
\ /
\ /
\ /
\_____________/
102 42
\ /
\ /
\~~~~~~~~~~~~~~~~~/
\ /
\ /
\___________/
Questo è il codice golf, quindi vince l'ingresso più breve.