Top Secret

Time limit: 0.1s Memory limit: 64MB Input: Output:

.. -. / ... . .. ..-. / -. ..- / . .-. .- / .- -... ... --- .-.. ..- - / -. .. -- .. -.-.

După peripețiile din viitor, Buzdi a decis că ar fi mai bine, de data aceasta, să plece în trecut. Mașina de călătorit în timp avea, totuși, o defecțiune, astfel încât acesta nu știa unde și în ce perioadă va ajunge. Din această cauză, după ce a folosit mașina de călătorit în timp, acesta a ajuns într-o încăpere, în care se afla un seif și o masă cu o foaie pe aceasta. Pe seif scria Top Secret, iar pe foaie se afla tabelul Codului Morse Internațional.

Tabelul Codului Morse Internațional\text{Tabelul Codului Morse Internațional}

După ce a citit tabelul de pe foaie, Buzdi s-a dus la seif și a observat că sub Top Secret se afla un șir de caractere SS ce conținea numai caracterele .-/ și spații, reprezentând codificarea unui șir de caractere folosind Codul Morse Internațional astfel:

  • Caracterul . reprezintă punctul (dot) din tabel.
  • Caracterul - reprezintă dreptunghiul / linia (dash) din tabel.
  • Caracterele . și -, așezate consecutiv, formează o literă mare conform tabelului.
  • Caracterul 'spațiu' reprezintă sfârșitul unui cuvânt.
  • Caracterul / reprezintă spațiul dintre două cuvinte. Acesta va fi urmat întotdeauna de caracterul 'spațiu' și de cel puțin un alt cuvânt.

De exemplu, dacă S=S = .- / -... . / -.-. ., atunci, după decodificarea acestui șir, S=S = A BE CE.

Cerință

Buzdi a observat două căsuțe în care trebuia să introducă niște informații pentru ca seiful să se deschidă. Acesta considera că, dacă va introduce informațiile corect, acesta va găsi în interior un mare secret al omenirii, însă călătoria în timp i-a diminuat foarte mult capacitatea de a gândi. Așa că, fiind blocat, vă roagă pe voi să determinați următoarele informații:

  1. Numărul de cuvinte pe care le va avea șirul SS după decodificarea acestuia.
  2. Șirul SS după decodificarea acestuia.

Date de intrare

Pe prima linie se află un număr natural CC, reprezentând tipul informației pe care trebuie să îl determinați. Pe următoarea linie se află un șir de caractere SS, reprezentând codificarea unui șir de caractere folosind Codul Morse Internațional.

Date de ieșire

Dacă C=1C = 1, atunci pe prima linie se va afla un număr natural, reprezentând informația determinată pentru primul tip.
Dacă C=2C = 2, atunci pe prima linie se va afla un șir de caractere, reprezentând informația determinată pentru al doilea tip.

Restricții și precizări

  • Fie S|S| lungimea șirului de caractere SS.
  • 1S1041 \leq |S| \leq 10^4.
  • Se consideră ca fiind cuvânt orice înșiruire de litere și cifre consecutiv.
  • Se garantează că șirul decodificat va conține cel puțin un cuvânt și va conține doar caractere ce se regăsesc în tabelul Codului Morse Internațional (litere din alfabetul latin și cifre).
  • Se garantează că SS este codificat corect, folosind tabelul Codului Morse Internațional.
  • Pentru citirea și afișarea rapidă, se recomandă folosirea acestor linii de cod la începutul funcției main:
ios::sync_with_stdio(false);  
cin.tie(NULL);  
cout.tie(NULL);  
# Punctaj Restricții
0 0 Exemplele
1 31 C=1C = 1
2 10 C=2C = 2 și șirul decodificat va conține o singură cifră
3 17 C=2C = 2 și șirul decodificat va conține un singur cuvânt
4 42 C=2C = 2

Exemplul 1

stdin

2
.- / -... . / -.-. .

stdout

A BE CE

Exemplul 2

stdin

1
.- / -... . / -.-. .

stdout

3

Exemplul 3

stdin

2
..-. ..- - ..- .-. . / ..-. --- .-. / ..-. ..- - ..- .-. . / ..--- ----- ..--- .....

stdout

FUTURE FOR FUTURE 2025

Exemplul 4

stdin

1
..-. ..- - ..- .-. . / ..-. --- .-. / ..-. ..- - ..- .-. . / ..--- ----- ..--- .....

stdout

4

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