Einführung
Sie spielen ein Matching-Spiel, bei dem Münzen oben eingeworfen werden und aufgrund der Schwerkraft nach unten (auf die obere Münze) fallen.
Also das
O <- inserting this coin
OO O
OOOOO
wird dies werden
O
OO O
OOOOO
Stellen Sie sich vor, jemand dreht das Board im Uhrzeigersinn. Folgendes wird passieren:
1. Die Platine wird gedreht
OOO
OO
O
OO
O
2. Münzen fallen aufgrund der Schwerkraft herunter
O
O
OO
OO
OOO
Deine Aufgabe
Ihre Aufgabe ist es, die Drehung der Platine durch Schreiben eines Programms oder einer Funktion zu simulieren. Der Einfachheit halber haben wir es nur mit einer Art Münze zu tun (es ist kein allzu aufregendes Matching-Spiel, oder?). Sie können davon ausgehen, dass die Schwerkraft erst nach Abschluss der Drehung angewendet wird. Das Brett wird im Uhrzeigersinn gedreht.
Eingang
Die Eingabe wird eine Zeichenfolge sein, die drei Arten von Zeichen enthält:
- O (Kapital o) ODER 0 (Null) - eine Münze (Sie entscheiden, welche Ihre Lösung unterstützt)
- (Leerzeichen) - ein leeres Feld
- \ n (neue Zeile) - Zeilenende
Der Eingang repräsentiert den Zustand der Karte. Sie können davon ausgehen, dass die Eingabe wohlgeformt ist und einen gültigen Status der Karte enthält (keine Münzen schweben). Die Eingabe kann ein Funktionsparameter sein oder von der Standardeingabe oder aus einer Datei gelesen werden.
Ausgabe
Der Ausgang ist der neue Zustand der Karte nach dem Drehen. Die Ausgabe enthält die gleichen 3 Arten von Zeichen wie die Eingabe. Die Ausgabe kann von Ihrer Funktion zurückgegeben oder in die Standardausgabe oder in eine Datei geschrieben werden.
Stichprobe
Input1:
O
OO O
OOOOO
Output1:
O
O
OO
OO
OOO
Input2:
O O
O O
Output2:
OO
OO
Sie können jede Sprache und die Standardbibliothek der gewählten Sprache verwenden. Das kürzeste Programm in Bytes gewinnt.