Fișierul intrare/ieșire zimeria.in, zimeria.out Sursă ONI 2014, clasa a 10-a
Autor Daniel Popa Adăugată de avatar TincaMatei Tinca Matei TincaMatei
Timp de execuție pe test 0.5 sec Limită de memorie 4096 KB
Scorul tău N/A Dificultate N/A

Zimeria ( Clasa a 10-a )

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ă.

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.

Date de intrare

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.

Date de ieșire

  • 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.

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.

Exemplu

zimeria.in zimeria.out
1
5
qwertyuiopas
reeet
wyuty
reeet
oiopp
oiopp
3
2
5
qwertyuiopas
oiopp
reeet
wyuty
reeet
oiopp
wyuty
reeet
reeet
oiopp
oiopp

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.

Trebuie să te autentifici pentru a trimite soluții. Click aici

Indicii de rezolvare

Arată 2 categorii