Gigel este un elev îndrăgostit de jocuri. El se joacă cu numere, cu cuvinte, cu orice joc care îi solicită atenţia şi gândirea. Jucându-se cu nişte cuvinte el a observat următoarele.
Din lista de cuvinte scrise pe hârtie a selectat unul şi l-a considerat cuvânt de bază. A observat apoi că acest cuvânt se poate forma şi prin concatenarea unor cuvinte dintre cele rămase în ordinea în care ele sunt scrise pe hârtie. De exemplu luând cuvântul 'concatenare' ca şi cuvânt de bază şi lista de cuvinte ('campion', 'con', 'rest', 'cate', 'nare', 'n', 'pom', 'are', 'ea'), observă că luând şi concatenând cuvintele cu numărul de ordine 2, 4, 5 se obţine cuvântul de bază. Aceasta nu este însă singura soluţie deoarece şi secvenţa cuvintelor cu numerele de ordine 2, 4, 6, 8 produce acelaşi cuvânt. Problema pe care si-o pune Gigel este de a determina cât mai multe dintre cuvintele date care, prin concatenarea lor, formează cuvântul ales.
Cerinţă
Date fiind cuvântul de bază şi lista de cuvinte, să se determine numărul maxim de cuvinte care prin concatenarea lor în ordinea în care acestea sunt date vor forma cuvântul de bază dat.
Date de intrare
Fişierul de intrare concat.in conţine pe prima linie un singur cuvânt reprezentând cuvântul de bază. Linia a doua conţine un singur număr natural n reprezentând numărul de cuvinte din lista. Pe fiecare dintre următoarele n linii se găseşte câte un singur cuvânt din listă.
Date de ieşire
Fişierul de ieşire concat.out conţine pe prima linie un număr natural reprezentând numărul maxim de cuvinte din listă din care se poate forma cuvântul de bază prin concatenare. Linia a doua a fişierului de ieşire va conţine o secvenţă strict crescătoare de numere naturale, separate prin câte un spaţiu, reprezentând numerele de ordine ale cuvintelor din listă prin concatenarea cărora se obţine una dintre soluţiile cu număr maxim de cuvinte folosite. În cazul în care nu există nici o soluţie fişierul de ieşire va conţine o singură linie pe care se va găsi valoarea 0.
Restricţii
Fiecare cuvant are maxim 100 caractere.
1 <= n <= 100
Cuvintele sunt formate numai din litere mici ale alfabetului englez.
Exemplu
concat.in
concat.out
Explicaţii
concatenare
9
campion
con
rest
cate
nare
n
pom
are
ea
4
2 4 6 8
Soluţia maximă este formată din 4 cuvinte.
Cuvintele sunt con(2)+cate(4)+n(6)+are(8)