ADN revisité – Épreuve régionale 2010

Niveau 7

ÉNONCÉ

Dans ce problème, une séquence d'ADN est une suite finie de lettres dans l'ensemble {A,T,G,C}. Chaque lettre sera appelée un nucléotide.

Un biologiste dispose d'une séquence s d'ADN de longueur N dont il ne connaît pas l'agencement des nucléotides. L'opération qui consiste à découvrir la suite des nucléotide est le séquençage. Pour séquencer son brin d'ADN, le biologiste fabrique physiquement plusieurs copies de s. Toutes ces copies sont ensuite placées dans une machine, qui les casse aléatoirement en petits morceaux plus facilement reconnaissables. Enfin, la machine renvoie la séquence exacte de certains de ces petits morceaux. Le but de ce problème est de calculer combien de séquences s sont possibles, sachant que s est de longueur N, et en connaissant les données renvoyées par la machine.

Prenons un exemple. La séquence initiale (mais qui nous est inconnue) est TAAACG. La machine en fait plusieurs copies, et morcelle chacune de celles-ci comme suit :

  • TAAACG -> TA, AA, CG
  • TAAACG -> T, AAAC, G
  • TAAACG -> T, AA, AACG

Ensuite, la machine lit certains de ces morceaux (pas nécessairement dans le bon sens !). Imaginons qu'elle renvoie les morceaux suivants : AT, AACG (remarquez que le premier morceau est inversé).

Alors 22 chaînes de longueur 5 sont possibles : AACGAT AACGTA ATAACG ATGCAA AGCAAT TAAACG TAACGA TAACGT TAACGG TAACGC TAGCAA TTAACG TGCAAT GTAACG GGCAAT GCAAAT GCAATA GCAATT GCAATG GCAATC CTAACG CGCAAT

Remarquez que toutes ces chaînes contiennent AT et AACG, dans un sens ou dans l'autre, et se chevauchant éventuellement.

ENTRÉE

  • Sur la première ligne : l'entier N (entre 1 et 25, bornes incluses).
  • Sur la deuxième ligne : l'entier M (entre 1 et 7, bornes incluses).
  • Sur les M prochaines lignes, les morceaux d'ADN tels que lus par la machine.

SORTIE

  • Un entier, le nombre de chaînes initiales possibles.

Contraintes d'exécution

Utilisation mémoire maximum
100000 kilo-octets
Temps d'exécution maximum
1000 millisecondes

Exemples d'entrée/sortie

Exemple d'entrée
6
2
AT
AACG
Exemple de sortie
22
Exemple d'entrée
7
2
AT
AACG
Exemple de sortie
162