// gv.c

// << Algorithmique du texte >>
// Maxime Crochemore, Christophe Hancart et Thierry Lecroq
// Vuibert, 2001.

#include <stdio.h>
#include "chl-blast.h"
#include "couple.h"

extern Couple *_L;
extern int ell, k, m, *seuil;
extern char x[10];


void gv(int ip, Mot v, int jp, int p, int t) {
   Couple c;

   if (jp == ell)
      printf("%s\n", v);
   else
      if (t < CARDA) {
         c = L(x[ip], t);
         if (p + cout(c) <= seuil[jp]) {
            v[jp] = lettre(c);
            gv(ip + 1, v, jp + 1, p + cout(c), 0);
            gv(ip, v, jp, p, t + 1);
         }
      }
}