În țara lui Piticot cuvintele au doar două litere, prima fiind o majusculă (literă mare) iar a doua o minusculă (literă mică). Piticii $M_i$ și $G_i$ se distrează și își trimit mesaje ascunzând cuvintele în cadrul unor secvențe transmise sub forma unor șiruri de litere. Piticul $M_i$ scrie și trimite un mesaj piticului $G_i$ respectând următoarele reguli:
De exemplu secvența $s f u E e t R u E E$ ascunde un cuvânt deoarece conține și majuscule și minuscule, iar litera terminator de secvență, $E$, se repetă de exact două ori. Secvența ascunde cuvântul $Eu$, iar costul cuvântului este $5$ ($3$ litere $E$ + $2$ două litere $u$).
La primirea mesajului, piticul $G_i$ determină, pentru fiecare majusculă, costul maxim al cuvintelor care încep cu aceasta.
Scrieţi un program care determină:
Fișierul de intrare mesaj.in conţine pe prima linie un număr natural $P$. Pentru toate testele de intrare, numărul $P$ poate avea numai una dintre valorile $1$, $2$ sau $3$. Pe a doua linie a fișierului de intrare se găsește numărul natural $N$ reprezentând numărul de litere folosite de $M_i$ pentru scrierea mesajului. Pe a treia linie se găsesc $N$ litere mari și mici ale alfabetului englez, separate prin câte un spațiu, reprezentând literele mesajului, în ordinea în care au fost trimise.
Dacă valoarea lui $P$ este $1$, se va rezolva numai punctul $1)$ din cerințe. În acest caz, fişierul de ieşire mesaj.out va conține pe prima linie un număr natural reprezentând răspunsul la cerinţa $1)$.
Dacă valoarea lui $P$ este $2$, se va rezolva numai punctul $2)$ din cerințe. În acest caz, fişierul de ieşire mesaj.out va conține cuvintele din mesaj, fiecare cuvânt scris pe câte o linie, în ordinea în care au fost trimise.
Dacă valoarea lui $P$ este $3$, se va rezolva numai punctul $3)$ din cerințe. În acest caz, fişierul de ieşire mesaj.out va conține pe fiecare linie câte o majusculă urmată de un număr natural nenul, separate printr-un spațiu. Majusculele vor fi afișate în ordine de la $A$ la $Z$, însă doar cele pentru care au existat în mesaj cuvinte care au început cu ele.
mesaj.in
1 34 w w w w e D o r F D o r r t R n e R e y y j j i M o e i t t t j w w
mesaj.out
4
Textul conține șase secvențe:
1) $w w w w$
2) $e D o r F D o r r$
3) $t R n e R e y y$
4) $j j$
5) $i M o e i t t t$
6) $j w w$
Sunt $4$ secvențe care nu ascund cuvinte:
mesaj.in
2 34 u N a a e D o r F D o r r t R n e R e y y j j i M o e i t t t j w w
mesaj.out
Nu Do Re
Textul conține șase secvențe:
1) $u N a a$
2) $e D o r F D o r r$
3) $t R n e R e y y$
4) $j j$
5) $i M o e i t t t$
6) $j w w$
Prima secvență are terminatorul $a$ care se repetă de două ori și ascunde cuvântul $Nu$.
A doua secvență are terminatorul $r$ și ascunde cuvântul $Do$.
A treia are terminatorul $y$ și ascunde cuvântul $Re$.
Ultimele trei secvențe nu ascund cuvinte.
mesaj.in
3 24 A a t t B b B t t e A e a n n B w I I F i e F F
mesaj.out
A 2 B 1 F 1
Textul conține cinci secvențe:
1) $A a t t$
2) $B b B t t$
3) $e A e a n n$
4) $B w I I$
5) $F i e F F$
Cuvintele transmise în mesaj sunt:
Costul maxim al cuvintelor care încep cu $A$ este $2$ și au fost $2$ cuvinte transmise. Pentru litera $B$ s-a transmis un singur cuvânt de cost maxim $3$.
Pentru litera $F$ s-a transmis un singur cuvânt de cost maxim $4$.
| Autor: | Daniela Lica |
| Publicat de: | raresgherasa |
Tags: