Considereu una paraula composta només amb ‘A’ i ‘B’. Algunes posicions tenen el contingut fixat, mentre que d’altres podeu escollir si tenen una ‘A’ o una ‘B’. De quantes maneres podeu triar el contingut de les posicions lliures de forma que la subparaula “ABBA” no hi aparegui?
Entrada
L’entrada consisteix en diverses paraules amb entre 1 i 105 caràcters. Les lletres fixades es marquen amb ‘A’ i ‘B’, mentre que les lletres per triar es marquen amb punts.
Sortida
Per a cada paraula, escriviu el nombre de maneres de completar-la sense que hi aparegui la subparaula “ABBA”. Com que el resultat pot ser molt gros, feu els càlculs mòdul 108 + 7.
Pista
La solució esperada és una programació dinàmica amb 4n estats, on n és la mida de la paraula donada. Potser aquest autòmat us resultarà útil:
->,arrowsize=1ab A ->,arrowsize=1bc B ->,arrowsize=1cd B ->,arrowsize=1de A
->,arrowsize=1a0.8cm B ->,arrowsize=1b0.8cm A [arcangle=40]->,arrowsize=1cb A [arcangle=40]->,arrowsize=1da B
Input
. A.. .... B... ABBA A..B.A A..B.B ....................... .............................. ..B....A....AB....BA.....B..A.
Output
2 4 15 8 0 5 7 2109583 66654350 513920