== include(page="template/taskheader" task_id="zimeria") ==
Poveste și cerință...
Olimpia D’Info a găsit o placă gravată ce conține mai multe cuvinte scrise cu semne grafice necunoscute, fiecare cuvânt fiind format din exact 5 semne grafice. Studiind cu atenție cuvintele, a dedus că în scrierea acestora sunt utilizate 12 semne grafice distincte și a asociat câte o literă mică din alfabetul englez fiecărui semn. După asociere, a stabilit pentru fiecare semn o complexitate, scriind literele în ordinea crescătoare a complexităților pe care le-a stabilit anterior. Olimpia consideră că această ”complexitate” este cel mai potrivit criteriu de ordonare lexicografică.
h2. Cerințe
Cunoscând ordinea semnelor și cuvintele de pe placă determinați:
a) Numărul de cuvinte distincte existente pe placă.
b) Șirul de cuvinte ordonat lexicografic, conform criteriului formulat de Olimpia.
h2. Date de intrare
Fișierul de intrare $zimeria.in$ ...
Fișierul de intrare $zimeria.in$ conține:
* pe prima linie un numărul natural $p = 1$ sau $p = 2$, reprezentând varianta cerinței de rezolvare;
* pe a doua linie un număr natural n reprezentând numărul de cuvintede pe placă;
* pe a treia linie 12 caractere, litere mici ale alfabetului englez, care reprezintă semnele codificate, în ordinea lexicografică a semnelor;
* pe fiecare din următoarele $n$ linii câte un cuvânt.
h2. Date de ieșire
În fișierul de ieșire $zimeria.out$ ...
* Dacă valoarea lui $p$ este [$1$], atunci se va rezolva numai punctul a) din cerință.
În acest caz, fișierul de ieșire $zimeria.out$ va conține pe prima linie numărul de cuvinte distincte de pe placă.
* Dacă valoarea lui $p$ este [$2$], atunci se va rezolva numai punctul b) din cerință.
În acest caz, fișierul de ieșire $zimeria.out$ va conține n linii, pe fiecare linie câte un cuvânt în ordine lexicografică, conform complexității stabilite de către Olimpia.
h2. Restricții
* $... ≤ ... ≤ ...$
* $n < 400000$;
* 30% din teste vor avea pe prima linie valoarea 1, iar restul de 70% din teste vor avea pe prima linie valoarea 2.
h2. Exemplu
table(example).
|_. zimeria.in |_. zimeria.out |
| This is some
text written on
multiple lines.
| This is another
text written on
multiple lines.
|
| 1
5
qwertyuiopas
reeet
wyuty
reeet
oiopp
oiopp
| 3
|
| 2
5
qwertyuiopas
oiopp
reeet
wyuty
reeet
oiopp
| wyuty
reeet
reeet
oiopp
oiopp
|
h3. Explicație
...
Pentru primul exemplu placa conține 3 cuvinte distincte.
Pentru al doilea exemplu ordonăm cuvintele și obținem wyuty, reeet, reeet, oiopp, oiopp.
== include(page="template/taskfooter" task_id="zimeria") ==
== include(page="template/taskfooter" task_id="zimeria") ==