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 semne grafice. Studiind cu atenție cuvintele, a dedus că în scrierea acestora sunt utilizate 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ă.
Cerinţă
Cunoscând ordinea semnelor și cuvintele de pe placă determinaţi:
- Numărul de cuvinte distincte existente pe placă.
- Şirul de cuvinte ordonat lexicografic, conform criteriului formulat de Olimpia.
Date de intrare
Fişierul de intrare zimeria.in conţine:
- pe prima linie un numărul natural , reprezentând varianta cerinţei de rezolvare;
- pe a doua linie un număr natural reprezentând numărul de cuvinte de pe placă;
- pe a treia linie caractere, litere mici ale alfabetului englez, care reprezintă semnele codificate, în ordinea lexicografică a semnelor;
- pe fiecare din următoarele linii câte un cuvânt.
Date de ieşire
- Dacă valoarea lui este , atunci se va rezolva numai punctul 1 din cerinţă. În acest caz, fişierul de ieşire
zimeria.outva conţine pe prima linie numărul de cuvinte distincte de pe placă. - Dacă valoarea lui este , atunci se va rezolva numai punctul 2 din cerinţă. În acest caz, fişierul de ieşire
zimeria.outva conţine linii, pe fiecare linie câte un cuvânt în ordine lexicografică, conform complexităţii stabilite de către Olimpia.
Restricții și precizări
- ;
- din teste vor avea pe prima linie valoarea , iar restul de din teste vor avea pe prima linie valoarea .
Exemplul 1
zimeria.in
1
5
qwertyuiopas
reeet
wyuty
reeet
oiopp
oiopp
zimeria.out
3
Explicație
Placa conţine cuvinte distincte.
Exemplul 2
zimeria.in
2
5
qwertyuiopas
oiopp
reeet
wyuty
reeet
oiopp
zimeria.out
wyuty
reeet
reeet
oiopp
oiopp
Explicație
Ordonăm cuvintele și obținem wyuty, reeet, reeet, oiopp, oiopp.
Sursă și autori
ONI 2014, clasele 10. Daniel Popa.
Enunț din Kilonova, sub licența CC-BY-NC-SA-4.0, conform politicii sursei. Adaptări de prezentare și tipografie. Exemplele, formulele și figurile originale sunt păstrate.
Trimite o soluție
Setul original de teste și regulile de punctare sunt în curs de verificare. Trimiterea pentru evaluare va fi disponibilă după această verificare.
Se verifică autentificarea…