Palíndromos para llevar

Time Limit:
3 Sec
Memory Limit:
128Mb
Enviados:
383
Resuelto:
195

Descripción

Un palíndromo es una palabra o frase cuyas letras están dispuestas de tal manera que puede leerse igual en ambos sentidos, es decir, que suena del mismo modo leída de izquierda a derecha y de derecha a izquierda. Ejemplo: tacocat, rayar, reconocer, tnt, etc.
 
Dada una cadena $s$, debemos particionar la cadena $s$ tal que cada subcadena de la partición es un palíndromo, estas se llamaran “Particiones Palíndromo”(Que nombre tan original no? :D).
Como debe haber muchas maneras de generar le vamos a poner algo de dificultad, así que vamos a devolver TODAS las posibles “Particiones Palíndromo” de la cadena $s$.

Entrada

La entrada solo va a consistir de una cadena $s$ $(1\leq |s| \leq 16)$, la cadena de la que queremos saber todas sus Particiones Palíndromo, la cadena $s$ solo consistirá en caracteres del abecedario en minúscula.

Salida

En la primera línea mostrar cuantas particiones palíndromo se obtuvieron de $s$, y en las siguientes líneas mostrar todas las particiones palíndromo de $s$ en orden lexicográfico ascendentemente.(Fijarse el formato abajo)

Ejemplo Entrada

Copy icon
abaccdefef

Ejemplo Salida

Copy icon
12
[a, b, a, c, c, d, e, f, e, f]
[a, b, a, c, c, d, e, fef]
[a, b, a, c, c, d, efe, f]
[a, b, a, cc, d, e, f, e, f]
[a, b, a, cc, d, e, fef]
[a, b, a, cc, d, efe, f]
[aba, c, c, d, e, f, e, f]
[aba, c, c, d, e, fef]
[aba, c, c, d, efe, f]
[aba, cc, d, e, f, e, f]
[aba, cc, d, e, fef]
[aba, cc, d, efe, f]

Ayuda

Ejemplo entrada #2

aaaa

Ejemplo salida #2

8
[a, a, a, a]
[a, a, aa]
[a, aa, a]
[a, aaa]
[aa, a, a]
[aa, aa]
[aaa, a]
[aaaa]


Ejemplo entrada #3

tacocat

Ejemplo salida #3
4
[t, a, c, o, c, a, t]
[t, a, coc, a, t]
[t, acoca, t]
[tacocat]