introduzione
Stai giocando a un gioco di abbinamento, in cui le monete vengono inserite in alto e cadono in basso (sulla moneta in alto) a causa della gravità.
Così questo
O <- inserting this coin
OO O
OOOOO
diventerà questo
O
OO O
OOOOO
Ora immagina che qualcuno ruoti la tavola in senso orario. Succederà quanto segue:
1. La scheda viene ruotata
OOO
OO
O
OO
O
2. Le monete cadono a causa della gravità
O
O
OO
OO
OOO
Il tuo compito
Il tuo compito è simulare la rotazione della scheda scrivendo un programma o una funzione. Per semplicità, abbiamo a che fare solo con un tipo di moneta (non è un gioco di abbinamento troppo eccitante, vero ...). Si può presumere che la gravità sia applicata solo dopo il completamento della rotazione. La scheda viene ruotata in senso orario.
Ingresso
L'input sarà una stringa, che contiene 3 tipi di caratteri:
- O (maiuscola o) O 0 (zero) - una moneta (decidi quale supporta la tua soluzione)
- (spazio) - un campo vuoto
- \ n (nuova riga) - fine della riga
L'ingresso rappresenta lo stato della scheda. Si può presumere che l'input sia ben formato e contenga uno stato valido del tabellone (nessuna moneta fluttua). L'input può essere un parametro di funzione oppure può essere letto dall'input standard o da un file.
Produzione
L'output è il nuovo stato della scheda dopo la rotazione. L'output contiene gli stessi 3 tipi di caratteri dell'input. L'output può essere restituito dalla tua funzione o può essere scritto nell'output standard o in un file.
Campione
input1:
O
OO O
OOOOO
output1:
O
O
OO
OO
OOO
Input2:
O O
O O
Output2:
OO
OO
È possibile utilizzare qualsiasi lingua e la libreria standard della lingua scelta. Vince il programma più breve in byte.