Vous devez écrire un programme ou une fonction qui reçoit le volume d'un bol et le volume d'eau qu'il contient en entrée et en sortie ou renvoie une représentation ASCII d'un bol contenant de l'eau avec les volumes souhaités.
Un bol a la structure suivante:
\ /
\___/
Le bol a au moins un _
caractère. Les nombres de \
'et /
' sont également positifs et ils sont égaux en raison de la symétrie.
Le volume du bol est le nombre total de caractères _
et space
entre les \
s et /
les plus un pour chaque paire de \
et /
. Cela signifie que le bol ci-dessus a le volume de 10
:
\ / => xxxxx x (the last one is for the \/ pair)
\___/ xxx x (the last one is for the \/ pair)
Notez que deux bols différents peuvent avoir le même volume. Par exemple, les deux bols suivants ont un volume de 18:
\ /
\ / \ /
\___/ \_______/
Nous pouvons verser un peu d'eau dans le bol. L'eau est représentée comme une rangée de ~
caractères au lieu d'espaces à l'intérieur du bol. La rangée du bas n'a pas d'espaces et ne peut donc pas contenir les ~
. Cela signifie que notre exemple peut être rempli d'eau d'une seule manière:
\~~~~~/
\___/
D'autres bols peuvent être remplis de plusieurs manières:
\~~~~~/ \ /
\ / \~~~/
\_/ \_/
Le volume d'eau dans un bol est le volume des rangées de bol sous les ~
caractères. Les exemples ci-dessus ont 4, 6 and 2
respectivement des volumes d'eau .
Contribution
- Deux entiers positifs, le volume du bol et le volume de l'eau.
- Vous pouvez choisir l'ordre des deux nombres.
- Les deux entiers peuvent être entrés dans n'importe quel format de liste commun (liste, tuple, tableau, etc.) ou sous forme de deux entiers distincts.
- Au moins une configuration d'eau de bol valide est garantie pour les valeurs d'entrée.
Production
- Représentation ASCII d'un bol avec de l'eau où les volumes du bol et de l'eau correspondent à l'entrée.
- Si vous choisissez de renvoyer le résultat au lieu d'imprimer, il doit être renvoyé sous forme de chaîne unique (ou l'alternative la plus proche de votre langue).
- Tout espace de fin est autorisé.
- Aucun espace blanc non nécessaire n'est autorisé.
- S'il existe plusieurs configurations correctes, vous êtes libre de choisir celle que vous produisez, mais vous ne pouvez en sortir qu'une.
Exemples
Chaque paire d'entiers en entrée est suivie de ses une ou plusieurs sorties possibles.
6 2
\~~~/
\_/
10 4
\~~~~~/
\___/
24 8
\ /
\~~~~~~/
\ /
\__/
42 12 //either of the two output is correct
\ /
\ /
\~~~~~~~/
\ /
\ /
\_/
\ /
\~~~~~~~~~~~~~/
\___________/
90 68
\~~~~~~~~~~~~~~~~~~~~~/
\ /
\ /
\ /
\_____________/
102 42
\ /
\ /
\~~~~~~~~~~~~~~~~~/
\ /
\ /
\___________/
C'est le golf de code, donc l'entrée la plus courte gagne.