Ana
implineste astazi 14 ani si mama ei ii pregateste o petrecere surpriza. Pentru
petrecere mama Anei va decora toata casa cu ghirlande de aceeasi lungime formate
din margele colorate. Mama cunoaste foarte bine preferintele Anei si stie ca
ei nu ii plac decat anumite combinatii de culori, orice alta secventa de culori
decat cele preferate de ea creandu-i stari evidente de indispozitie.
De exemplu, daca am avea margele de 4 culori (sa le notam A, B, C, D) combinatiile
pe care Ana le prefera ar putea fi ABB,
BCA, BCD, CAB, CDD si DDA. Deci mama Anei ar trebui sa construiasca ghirlande
in care sa apara doar aceste combinatii de culori. Daca lungimea ghirlandelor
ar fi 5, atunci singurele variante posibile sunt BCABB si BCDDA. Ghirlanda ABBCA
(de exemplu) este inacceptabila deoarece contine combinatia BBC.
Cerinta
Date fiind combinatiile acceptabile precum lungimea ghirlandelor, scrieti un
program care sa determine cate ghirlande distincte pot fi construite.
Date
de intrare
Fisierul de intrare party.in
contine pe prima linie trei numere naturale separate prin cate un spatiu
n L m, unde n reprezinta
numarul de culori, L reprezinta
lungimea ghirlandelor, iar m
reprezinta numarul de combinatii acceptabile. Cele n
culori sunt codificate prin primele n
litere mari ale alfabetului. Pe urmatoarea linie sunt scrise cele m
combinatii acceptabile, separate prin cate un spatiu. Toate combinatiile acceptabile
au aceeasi lungime.
Date de
iesire
Fisierul de iesire party.out
va contine o singura linie pe care va fi scris un singur numar natural reprezentand
numarul de ghirlande ce pot fi construite.
Restrictii
1 <= n <= 26
1 <= L <= 100
1 <= m <= 600
1 <= Lungimea combinatiilor
<= 10
Exemplu
party.in | party.out | party.in | party.out |
4 5 6 |
2 | 5
4 5 E D C B A |
625 |
Timp maxim de executie/test: 0.4 secunde
prof. Emanuela Cerchez
Liceul de
Informatica "Grigore Moisil" Iasi
Contact:emanuela.cerchez@gmail.com