zimeria

Time limit: 0.2s Memory limit: 4MB Input: zimeria.in Output: zimeria.out

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 55 semne grafice. Studiind cu atenție cuvintele, a dedus că în scrierea acestora sunt utilizate 1212 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:

  1. Numărul de cuvinte distincte existente pe placă.
  2. Ş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,2}p \in \{1,2\}, reprezentând varianta cerinţei de rezolvare;
  • pe a doua linie un număr natural nn reprezentând numărul de cuvinte de pe placă;
  • pe a treia linie 1212 caractere, litere mici ale alfabetului englez, care reprezintă semnele codificate, în ordinea lexicografică a semnelor;
  • pe fiecare din următoarele nn linii câte un cuvânt.

Date de ieşire

  • Dacă valoarea lui pp este 11, atunci se va rezolva numai punctul 1 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 pp este 22, atunci se va rezolva numai punctul 2 din cerinţă. În acest caz, fişierul de ieşire zimeria.out va conţine nn 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

  • n<400 000n < 400 \ 000;
  • 30%30\% din teste vor avea pe prima linie valoarea 11, iar restul de 70%70\% din teste vor avea pe prima linie valoarea 22.

Exemplul 1

zimeria.in

1
5
qwertyuiopas
reeet
wyuty
reeet
oiopp
oiopp

zimeria.out

3

Explicație

Placa conţine 33 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.

Log in or sign up to be able to send submissions!