On commence par vous décrire une grande chaîne d'ADN, c'est-à-dire une suite de lettres parmi C,G,T,A. Ensuite on vous donne des motifs d'ADN correspondant à des gènes, c'est-à-dire une suite de quelques dizaines de lettres (toujours parmi C,G,T,A). Le but est de déterminer pour chaque gène quelle est la zone de la grande chaîne d'ADN qui ressemble le plus au motif de ce gène.
Concrètement, on veut minimiser le nombre de différences entre le code du gène et le code d'un fragment de la grande chaîne d'ADN (le fragment doit être de même longueur que le code du gène et doit être entièrement inclus dans la chaîne d'ADN).
Pour simplifier, on va travailler en considérant que l'ADN est simplement une suite de 0 et de 1 (remarquez que cela ne change pas fondamentalement le problème). On supposera aussi que tous les gènes considérés sont des séquences de même longueur. Ce qu'on vous demande précisément dans ce sujet, c'est de déterminer pour chaque gène quel est le nombre minimum de différences que l'on peut obtenir entre le code du gène et le code d'un fragment de même longueur entièrement inclus dans la grande chaîne d'ADN.
Notez que vous ne pouvez pas retourner les gènes ou la chaîne d'ADN.
Vous devez écrire G lignes contenant chacune un entier. La ligne ième ligne doit donner le nombre minimal de différences que l'on peut trouver entre le code du ième gène de l'entrée et un fragment de même longueur dans la grande chaîne d'ADN fournie.
entrée :
3 6 12 0 0 1 1 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 1 1 0 0 0 0 1 1 0 0
sortie :
1 3 0
1 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 1
Second motif : 3 différences au moins
1 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 1 1Troisième motif : 0 différence est possible
1 0 1 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1