Hintergrund
Dies ist eine Fortsetzung meiner früheren Herausforderung , bei der es darum ging, die Form einer Skulptur zu berechnen, die durch Fallenlassen von Magneten auf einen riesigen Stapel erhalten wurde.
Gute Nachricht: Der exzentrische Künstler mochte Ihre Arbeit und hat ein anderes Projekt für Sie. Er arbeitet immer noch mit Magnetskulpturen, hat sich aber entschlossen, sein Kunststudio zu erweitern - in den Weltraum ! Seine derzeitige Methode besteht darin, einen einzelnen würfelförmigen Magneten in die Umlaufbahn zu sprengen und andere Magnete darauf zu schießen, um einen riesigen magnetischen Satelliten zu erzeugen.
Eingang
Ihre Eingabe ist eine endliche Liste von 0
s und 1
s, die entweder im nativen Listenformat Ihrer Sprache oder als Zeichenfolge angegeben wird. Es wird als "Blaupause" eines Kunstwerks interpretiert und wie folgt von links nach rechts verarbeitet.
Sie beginnen mit einem einzelnen Magneten, der an einer ganzzahligen Koordinate der 2D-Ebene schwebt, und fügen gemäß den Anweisungen immer mehr Magnete hinzu. Die Richtlinie 0
dreht die gesamte Skulptur um 90 Grad gegen den Uhrzeigersinn. Bei der Richtlinie 1
findet der Künstler die am weitesten links stehende Säule der Skulptur und schießt von unten einen neuen Magneten darauf. Der neue Magnet haftet am untersten vorhandenen Magneten in der Säule und wird Teil der Skulptur. Beachten Sie, dass der Magnet im Gegensatz zur früheren Herausforderung nicht an anderen Magneten in der benachbarten Säule haftet. seine Geschwindigkeit ist jetzt astronomisch!
Ausgabe
Der Künstler möchte wissen, ob die gesamte Skulptur in seine Garage passt (wie er sie aus der Umlaufbahn bringt, bleibt unklar). Ihre Ausgabe ist also die Breite und Höhe der Skulptur, geordnet von niedriger nach höher. Sie können als Liste mit zwei Elementen, als Paar oder als durch Komma getrennte Zeichenfolge angegeben werden.
Beispiel
Betrachten Sie die Eingabesequenz
[1,0,1,1,0,1,0,0,1,1]
Um es zu verarbeiten, beginnen wir mit einem Magneten, der im Raum schwebt:
#
Die erste Anweisung lautet 1
, also schießen wir einen neuen Magneten von unten:
#
#
Die nächste Anweisung lautet 0
, also drehen wir die Skulptur:
##
Die nächsten beiden Anweisungen sind 1,1
, was bedeutet, dass wir zwei Magnete in die linke Spalte schießen:
##
#
#
Dann drehen wir uns erneut und schießen einmal, wie von 0,1
:
#
###
#
Schließlich drehen wir uns zweimal und schießen zweimal:
#
###
# #
#
Die resultierende Skulptur hat Breite 3
und Höhe 4
, also geben wir aus [3,4]
.
Regeln
Sie können entweder eine Funktion oder ein vollständiges Programm angeben. Die niedrigste Byteanzahl gewinnt und Standardschlupflöcher sind nicht zulässig.
Testfälle
[1,0,1] -> [2,2]
[1,0,1,1,0,1,0,0,1,1] -> [3,4]
[1,1,0,1,1,0,1,0,1,1] -> [4,5]
[1,1,0,1,1,0,1,0,1,1,0] -> [4,5]
[1,0,1,0,0,0,1,1,0,0,0,1,1,0,0,0,1,1] -> [3,3]
[0,1,0,1,1,1,1,0,0,1,0,1,0,0,1,1,0,1,0,1,0,0,1,1,0,1,0,0,0,0,1,0,1,0,1,1,0,0,1,1] -> [5,7]
[1,0,1,1,1,1,0,1,0,0,0,0,1,1,1,0,1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,1,0,1,1,1,1,0,1,1,0,0,1,1,1,1,0,0,0,0,1,1,0,0,1,1,0,1,0,0,1,1,0,1,1,0,0,1,0,1,0,0,1,0,1,1,1,0,1,1,0,0,1,0,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,0] -> [11,12]
[1,1,0,1,1,0,1,0,1,1,0]
zurückkehren[5,4]
und nicht[4,5]
? Die Skulptur wird am Ende gedreht.