introduction
Vous jouez à un jeu d'association, dans lequel des pièces sont insérées en haut et tombent vers le bas (sur la pièce du haut) en raison de la gravité.
Donc ça
O <- inserting this coin
OO O
OOOOO
deviendra ceci
O
OO O
OOOOO
Imaginez maintenant que quelqu'un tourne le plateau dans le sens des aiguilles d'une montre. Les événements suivants se produiront:
1. La planche est tournée
OOO
OO
O
OO
O
2. Les pièces tombent à cause de la gravité
O
O
OO
OO
OOO
Ta tâche
Votre tâche consiste à simuler la rotation de la carte en écrivant un programme ou une fonction. Par souci de simplicité, nous n'avons affaire qu'à un seul type de pièce (ce n'est pas un jeu d'association trop excitant, n'est-ce pas…). Vous pouvez supposer que la gravité n'est appliquée qu'une fois la rotation terminée. La planche est tournée dans le sens horaire.
Contribution
L'entrée va être une chaîne qui contient 3 types de caractères:
- O (o majuscule) OU 0 (zéro) - une pièce (vous décidez laquelle prend en charge votre solution)
- (espace) - un champ vide
- \ n (nouvelle ligne) - fin de ligne
L'entrée représente l'état de la carte. Vous pouvez supposer que l'entrée est bien formée et contient un état valide de la carte (aucune pièce ne flotte). L'entrée peut être un paramètre de fonction, ou peut être lue à partir de l'entrée standard ou d'un fichier.
Production
La sortie est le nouvel état de la carte après rotation. La sortie contient les 3 mêmes types de caractères que l'entrée. La sortie peut être renvoyée par votre fonction ou peut être écrite dans la sortie standard ou dans un fichier.
Échantillon
Input1:
O
OO O
OOOOO
Sortie1:
O
O
OO
OO
OOO
Input2:
O O
O O
Sortie2:
OO
OO
Vous pouvez utiliser n'importe quelle langue et la bibliothèque standard de la langue choisie. Le programme le plus court en octets gagne.