Feu un programa que compti totes les solucions d’un conjunt d’ clàusules de tres literals en forma normal conjuntiva.
Per exemple, considereu les tres clàusules (Aquest és el primer exemple de l’entrada.) Hi ha 10 solucions possibles, una de les quals és
L’entrada consisteix en diversos casos, cadascun amb el nombre de variables i el nombre de clàusules , seguides de les clàusules. Cada clàusula es defineix amb una paraula amb tres lletres diferents d’entre les primeres de l’alfabet. Les lletres majúscules indiquen variables tal qual, i les minúscules variables negades.
Podeu suposar , , que les lletres dins de cada clàusula estan ordenades entre si, que no hi ha clàusules repetides, que cada variable apareix en almenys una clàusula, i que sempre hi haurà alguna solució.
Per a cada cas, escriviu el nombre de solucions del conjunt de clàusules.
La solució esperada per a aquest problema és un backtracking conceptualment simple.
Input
4 3 ABC aBC BcD 3 1 aBC 3 3 ABC aBc Abc 4 6 acD aCd bcD ABd Abc BCD
Output
10 7 5 6