Trominos

Un tromino est une pièce composée de 3 parties carrées connectées par leurs côtés. Un tromino en L est un tromino dont les 3 carrés sont agencés en forme de L. Voici quelques exemples de trominos en L.

Vous disposez d'un grand nombre de trominos en L tous identiques, chacun composé de trois carrés de couleur : un rouge, un vert et un bleu.

Vous commencez à jouer avec vos trominos, et vous vous demandez s'il est possible d'assembler un certain nombre d'entre eux, pour former un tromino en L plus grand. Vous réalisez vite que c'est possible, en utilisant 4 trominos :

La méthode de construction peut être décrite de la manière suivante :

  1. Placer un tromino dans le coin bas-gauche, avec son coin extérieur en bas à gauche.
  2. Placer un deuxième tromino, de telle sorte que son coin extérieur coïncide avec le coin intérieur du premier.
  3. Prendre un troisième tromino, le tourner d'un quart de tour dans le sens des aiguilles d'une montre, et le placer au-dessus du premier.
  4. Prendre un quatrième tromino, le tourner d'un quart de tour dans le sens inverse des aiguilles d'une montre, et le placer à droite du premier.

Vous réalisez alors que vous pouvez obtenir un L encore plus grand, en agençant 4 de ces grands trominos avec la même méthode :

Vous décidez d'appeler les trominos d'origine des "trominos de niveau 1", ceux formés à partir de 4 trominos de niveau 1 : des "trominos de niveau 2", ceux formés à partir de 4 trominos de niveau 2 : des "trominos de niveau 3", etc.

Vous aimeriez continuer ainsi, et voir à quoi ressemblerait un tromino de niveau 4, 5, ou bien plus, mais vous n'avez malheureusement pas assez de petits trominos pour former un grand tromino de niveau 4.

Vous décidez donc d'écrire un programme qui génère automatiquement l'aspect d'un tromino de niveau donné.

Limites de temps et de mémoire (Python)

  • Temps : 1,5 s sur une machine à 1 GHz.
  • Mémoire : 32 000 ko.

Contraintes

  • 1 <= N <= 10, où N est le niveau du tromino que vous devez afficher.

Entrée

Un entier : le niveau du tromino en L que vous devez afficher.

Sortie

Le tromino du niveau fourni en entrée. Le tromino doit être représenté sous forme textuelle, en utilisant un caractère par petit carré. Vous devez utiliser le caractère '*' pour représenter les carrés rouges, '@' pour les carrés bleus, et '#' pour les carrés verts.

Exemples

Exemple 1

entrée :

1

sortie :

@
*#

Exemple 2

entrée :

3

sortie :

*@#*
#*@@
@#*@
*##@
*@@*###*
#@*#@*#@
@*##@@*#
*#@**#@*

Source : http://www.france-ioi.org/ Créé par : Mathias Hiron.