Wprowadzenie
Grasz w pasującą grę, w której monety są wkładane u góry i opadają na dno (na górną monetę) z powodu grawitacji.
Więc to
O <- inserting this coin
OO O
OOOOO
stanie się tym
O
OO O
OOOOO
Teraz wyobraź sobie, że ktoś obraca tablicę zgodnie z ruchem wskazówek zegara. Staną się następujące zdarzenia:
1. Tablica jest obrócona
OOO
OO
O
OO
O
2. Monety spadają z powodu grawitacji
O
O
OO
OO
OOO
Twoje zadanie
Twoim zadaniem jest symulacja obrotu tablicy, pisząc program lub funkcję. Dla uproszczenia mamy do czynienia tylko z jednym rodzajem monety (nie jest to zbyt ekscytująca gra polegająca na dopasowywaniu, prawda?). Możesz założyć, że grawitacja jest stosowana dopiero po zakończeniu obrotu. Płyta jest obracana zgodnie z ruchem wskazówek zegara.
Wejście
Dane wejściowe będą ciągiem znaków, który zawiera 3 typy znaków:
- O (kapitał o) LUB 0 (zero) - moneta (Ty decydujesz, które obsługuje Twoje rozwiązanie)
- (spacja) - puste pole
- \ n (nowa linia) - koniec wiersza
Dane wejściowe reprezentują stan płyty. Możesz założyć, że dane wejściowe są dobrze uformowane i zawierają prawidłowy stan planszy (nie płyną żadne monety). Wejście może być parametrem funkcji lub może być odczytane ze standardowego wejścia lub z pliku.
Wynik
Wyjście to nowy stan płytki po obrocie. Dane wyjściowe zawierają te same 3 typy znaków co dane wejściowe. Dane wyjściowe mogą zostać zwrócone z funkcji lub zapisane na standardowym wyjściu lub w pliku.
Próba
Wejście 1:
O
OO O
OOOOO
Wyjście 1:
O
O
OO
OO
OOO
Input2:
O O
O O
Wyjście 2:
OO
OO
Możesz użyć dowolnego języka i standardowej biblioteki wybranego języka. Najkrótszy program w bajtach wygrywa.