You are on page 1of 2

Ministerul Educaiei i Cercetrii tiinifice

Olimpiada de Informatic gimnaziu etapa naional


Brila, 15-19 aprilie 2015
Sursa: mesaj.pas, mesaj.cpp, mesaj.c

Clasa a V-a

Problema 3 - mesaj

100 puncte

n ara lui Piticot cuvintele au doar dou litere, prima fiind o majuscul (liter mare) iar a doua o minuscul (liter
mic). Piticii Mi i Gi se distreaz i i trimit mesaje ascunznd cuvintele n cadrul unor secvene transmise sub forma
unor iruri de litere. Piticul Mi scrie i trimite un mesaj piticului Gi respectnd urmtoarele reguli:
un mesaj conine una sau mai multe secvene;
orice liter care apare n mesaj, de cel puin dou ori, pe poziii alturate, este
numit terminator;
o secven se ncheie cnd s-a ntlnit o succesiune de litere terminator;
cuvntul este format din prima majuscul i ultima minuscul din secven,
fr a lua n seam litera terminator a secvenei;
o secven ascunde un cuvnt dac terminatorul su se repet de exact dou
ori i dac conine cel puin o liter mare i o liter mic, ignornd
terminatorul de secven;
costul unui cuvnt este egal cu numrul total de apariii al celor dou litere din
care este format, n cadrul secvenei n care a fost ascuns, lund n considerare
inclusiv literele terminator.
De exemplu secvena s f u E e t R u E E ascunde un cuvnt deoarece conine i majuscule i minuscule, iar
litera terminator de secven, E, se repet de exact dou ori. Secvena ascunde cuvntul Eu, iar costul cuvntului este
5 (3 litere E + 2 dou litere u).
La primirea mesajului, piticul Gi determin, pentru fiecare majuscul, costul maxim al cuvintelor care ncep cu aceasta.

Cerine
Scriei un program care determin:
1) numrul de secvene trimise care nu ascund cuvinte;
2) cuvintele din mesaj, n ordinea n care au fost trimise de piticul Mi;
3) pentru fiecare majuscul, cte cuvinte care ncep cu ea au costul maxim determinat de Gi.

Date de intrare
Fiierul de intrare mesaj.in conine pe prima linie un numr natural P. Pentru toate testele de intrare, numrul P
poate avea numai una dintre valorile 1, 2 sau 3. Pe a doua linie a fiierului de intrare se gsete numrul natural N
reprezentnd numrul de litere folosite de Mi pentru scrierea mesajului. Pe a treia linie se gsesc N litere mari i mici
ale alfabetului englez, separate prin cte un spaiu, reprezentnd literele mesajului, n ordinea n care au fost trimise.

Date de ieire
Dac valoarea lui P este 1, se va rezolva numai punctul 1) din cerine. n acest caz, fiierul de ieire mesaj.out va
conine pe prima linie un numr natural reprezentnd rspunsul la cerina 1).
Dac valoarea lui P este 2, se va rezolva numai punctul 2) din cerine. n acest caz, fiierul de ieire mesaj.out va
conine cuvintele din mesaj, fiecare cuvnt scris pe cte o linie, n ordinea n care au fost trimise.
Dac valoarea lui P este 3, se va rezolva numai punctul 3) din cerine. n acest caz, fiierul de ieire mesaj.out va
conine pe fiecare linie cte o majuscul urmat de un numr natural nenul, separate printr-un spaiu. Majusculele vor fi
afiate n ordine de la A la Z, ns doar cele pentru care au existat n mesaj cuvinte care au nceput cu ele.

Restricii i precizri
1 N 2000000
litera terminator a unei secvene poate fi ori minuscul ori majuscul;
ultimele litere din fiier sunt literele terminator ale ultimei secvene din mesajul trimis;
se garanteaz c n irul de litere din fiierul de intrare se afl ascuns cel puin un cuvnt;
majusculele alfabetului englez sunt A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z;
pentru 50% din teste N 1000000
Pentru rezolvarea cerinei 1) se acord 20 de puncte, pentru rezolvarea cerinei 2) se acord 40 de puncte, iar
pentru rezolvarea cerinei 3) se acord 40 de puncte.

Problema 3 - mesaj

Ministerul Educaiei i Cercetrii tiinifice


Olimpiada de Informatic gimnaziu etapa naional
Brila, 15-19 aprilie 2015
Sursa: mesaj.pas, mesaj.cpp, mesaj.c

Clasa a V-a

Exemplu
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

Explicaie
Textul conine ase secvene:
1)
2)
3)
4)
5)
6)

w
e
t
j
i
j

w
D
R
j
M
w

w w
o r F D o r r
n e R e y y
o e i t t t
w

Sunt 4 secvene care nu ascund cuvinte:


prima secven i a patra deoarece conin numai terminatorul;
secvena a cincea nu se decodific deoarece terminatorul se repet de
mai mult de dou ori;
secvena a asea nu conine majuscule.

Exemplu
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

Explicaie
Textul conine ase secvene:
1)
2)
3)
4)
5)
6)

u
e
t
j
i
j

N
D
R
j
M
w

a a
o r F D o r r
n e R e y y
o e i t t t
w

mesaj.out
Nu
Do
Re

Prima secven are terminatorul a care se repet de dou ori i ascunde


cuvntul Nu
A doua secven are terminatorul r i ascunde cuvntul Do.
A treia are terminatorul y i ascunde cuvntul Re.
Ultimele trei secvene nu ascund cuvinte.

Exemplu
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

Explicaie
Textul conine cinci secvene:
1)
2)
3)
4)
5)

A
B
e
B
F

a
b
A
w
i

t
B
e
I
e

t
t t
a n n
I
F F

mesaj.out
A 2
B 1
F 1

Cuvintele transmise n mesaj sunt


Aa
Bb
Aa
Bw
Fe

(cost
(cost
(cost
(cost
(cost

2)
3)
2)
2)
4)

Costul maxim al cuvintelor care ncep cu A este 2 i au fost 2 cuvinte


transmise. Pentru litera B s-a transmis un singur cuvnt de cost maxim 3.
Pentru litera F s-a transmis un singur cuvnt de cost maxim 4.

Timp maxim de execuie/test: 1,5 secunde


Memorie total: 1 MB, din care pentru stiv maxim 1 MB
Dimensiunea maxim a sursei 10 KB.

Problema 3 - mesaj

You might also like