Sujet 7 (G)

Énoncé

Étant donné un mot d'entrée formé de caractères entre les lettres `a` et `z`, renvoyer le ou les sous-mot(s) qui forment les plus longs palindromes, par ordre alphabétique. Un sous-mot est obtenu en ne prenant que certaines lettres du mot d'origine et en conservant l'ordre.

Si l'entrée est la chaîne vide, on conviendra qu'elle possède un unique palindrome : elle-même.

Limites de temps et de mémoire (Python)

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

Entrée

L'entrée est une chaîne de caractères ne contenant que des caractères entre `a` et `z`. Sa taille ne pourra excéder 50 caractères. Notez qu'il faudra un algorithme de faible complexité pour espérer trouver le plus long sous-palindrome dans ce cas.

Sortie

La sortie est la liste, un mot par ligne et triée alphabétiquement, de tous les plus longs sous-mots formant un palindrome obtenus à partir de l'entrée en retirant des lettres. Si un même palindrome peut être obtenu de différentes manières, il n'apparaîtra qu'une fois.

Attention à ne pas mettre d'espace à la fin des mots.

Exemples

Exemple 1

entrée :

informatique

sortie :

iai
ifi
imi
ini
ioi
iri
iti

Exemple 2

entrée :

tentative

sortie :

etate

Exemple 3

entrée :

cecinestunpalindrome

sortie :

einenie
einsnie
eintnie
einunie

Commentaires

Squelettes de codes :

[GROUPFULL:skeleton]

Source : https://www.france-ioi.org/