Sie sollten ein Programm oder eine Funktion schreiben, die das Volumen einer Schüssel und das Volumen des Wassers als Ein- und Ausgabe empfängt oder eine ASCII-Darstellung einer Schüssel mit Wasser mit den gewünschten Volumina zurückgibt.
Eine Schüssel hat folgende Struktur:
\ /
\___/
Die Schüssel hat mindestens einen _
Charakter. Die Anzahl von \
's und /
' s ist ebenfalls positiv und sie sind aufgrund der Symmetrie gleich.
Das Volumen der Schüssel ist die Gesamtzahl _
und die space
Zeichen zwischen \
's und /
' s plus eins für jedes Paar von \
und /
. Dies bedeutet, dass die obige Schüssel das Volumen von 10
:
\ / => xxxxx x (the last one is for the \/ pair)
\___/ xxx x (the last one is for the \/ pair)
Beachten Sie, dass zwei verschiedene Schalen das gleiche Volumen haben können. ZB haben beide folgenden Schalen ein Volumen von 18:
\ /
\ / \ /
\___/ \_______/
Wir können etwas Wasser in die Schüssel gießen. Das Wasser wird als eine Reihe von ~
Zeichen anstelle von Leerzeichen in der Schüssel dargestellt. Die unterste Zeile enthält keine Leerzeichen und darf daher keine ~
s enthalten. Dies bedeutet, dass unser Beispiel nur auf eine Weise mit Wasser gefüllt werden kann:
\~~~~~/
\___/
Andere Schalen können auf verschiedene Arten gefüllt werden:
\~~~~~/ \ /
\ / \~~~/
\_/ \_/
Das Volumen des Wassers in einer Schüssel ist das Volumen der Schüsselreihen unter den ~
Zeichen. Die obigen Beispiele haben jeweils ein Wasservolumen von 4, 6 and 2
.
Eingang
- Zwei positive ganze Zahlen, das Volumen der Schüssel und das Volumen des Wassers.
- Sie können die Reihenfolge der beiden Zahlen wählen.
- Die zwei Ganzzahlen können in jedem gängigen Listenformat (Liste, Tupel, Array usw.) oder als zwei separate Ganzzahlen eingegeben werden.
- Für die Eingabewerte ist mindestens eine gültige Schüsselwasserkonfiguration garantiert.
Ausgabe
- Die ASCII-Darstellung einer Schüssel mit Wasser, wobei Schüssel und Wasservolumen mit der Eingabe übereinstimmen.
- Wenn Sie das Ergebnis zurückgeben möchten, anstatt es zu drucken, sollte es als einzelne Zeichenfolge (oder als die nächstliegende Alternative Ihrer Sprache) zurückgegeben werden.
- Jedes nachfolgende Leerzeichen ist zulässig.
- Es ist kein unnötiges führendes Leerzeichen zulässig.
- Wenn es mehrere richtige Konfigurationen gibt, können Sie frei wählen, welche Sie ausgeben, aber Sie können nur eine davon ausgeben.
Beispiele
Jedem ganzzahligen Eingangspaar folgen ein oder mehrere mögliche Ausgänge.
6 2
\~~~/
\_/
10 4
\~~~~~/
\___/
24 8
\ /
\~~~~~~/
\ /
\__/
42 12 //either of the two output is correct
\ /
\ /
\~~~~~~~/
\ /
\ /
\_/
\ /
\~~~~~~~~~~~~~/
\___________/
90 68
\~~~~~~~~~~~~~~~~~~~~~/
\ /
\ /
\ /
\_____________/
102 42
\ /
\ /
\~~~~~~~~~~~~~~~~~/
\ /
\ /
\___________/
Dies ist Codegolf, also gewinnt der kürzeste Eintrag.