Se dă un şir de caractere de lungime . Acest şir conţine un mesaj ascuns şi a fost obţinut prin concatenarea cuvintelor care formau mesajul şi apoi inserarea unor caractere întâmplătoare la poziţii întâmplătoare în şir. lexicografi s-au decis să descifreze mesajul. În acest scop, lexicografii vin pe rând (în ordine, de la la ) şi fiecare lexicograf adaugă un cuvânt la un dicţionar. Iniţial dicţionarul este vid.
După ce a adăugat cuvântul, fiecare lexicograf încearcă să descopere mesajul ascuns în şir.
În acest scop, lexicograful partiţionează şirul într-un număr maxim de subsecvenţe, astfel încât fiecare subsecvenţă să conţină ca subşir unul dintre cuvintele existente în dicţionar la momentul respectiv. Deci numărul maxim de subsecvenţe în care a fost partiţionat şirul reprezintă de fapt numărul de cuvinte din mesaj
identificate de lexicograf (cuvintele din mesaj nu sunt în mod necesar distincte).
Cerinţă
Aflaţi pentru fiecare lexicograf numărul de cuvinte din mesajul descifrat de el.
Date de intrare
Pe prima linie a fişierului de intrare mesaj.in se află şirul de caractere dat. Pe a doua linie se află numărul întreg care reprezintă numărul de lexicografi. Pe fiecare dintre următoarele linii se află câte un şir de caractere. Mai exact, pe cea de a -a linie dintre cele se află cuvântul adăugat la dicţionar de lexicograful .
Date de ieşire
Fişierul de ieşire mesaj.out va conţine linii. Pe linia va fi scris numărul de cuvinte ale mesajului descifrat de lexicograful .
Restricţii şi precizări
- Atât cuvintele cât şi şirul dat sunt formate din caractere cu coduri ASCII de la la (deci nu conţin spaţii)
- Lungimile cuvintelor nu vor depăşi
- Se face distincţie între majuscule şi minuscule (
aeste diferit deA) - Suma lungimilor cuvintelor este mai mică sau egală cu
- O subsecvenţă a unui şir este formată din caractere consecutive din şirul respectiv.
- Un subşir al unui şir este format din caractere (nu neapărat consecutive) ale şirului respectiv, în ordinea în care acestea apar în şir.
Exemplul 1
mesaj.in
omuliosu
6
omul
iscusit
lis
om
ou
li
mesaj.out
1
1
1
2
2
3
Explicație
omul
omul
omul sau lis
om lis
om lis sau ou lis sau om ou sau ou ou
om li ou sau ou li ou