#1215
Î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 ascunzând cuvintele în cadrul unor secvențe transmise sub forma unor șiruri de litere. Piticul Mi scrie și trimite un mesaj piticului Gi 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 Gi determină, pentru fiecare majusculă, costul maxim al cuvintelor care încep cu aceasta.
Scrieţi un program care determină:
1) numărul de secvențe trimise care nu ascund cuvinte;
2) cuvintele din mesaj, în ordinea în care au fost trimise de piticul Mi;
3) pentru fiecare majusculă, câte cuvinte care încep cu ea au costul maxim determinat de Gi.
ONI GIM 2015, Clasa a V-a
Problema | Mesaj | Operații I/O |
![]() mesaj.in /mesaj.out
|
---|---|---|---|
Limita timp | 0.5 secunde | Limita memorie |
Total: 1 MB
/
Stivă 1 MB
|
Id soluție | #57669991 | Utilizator | |
Fișier | mesaj.cpp | Dimensiune | 3.14 KB |
Data încărcării | 09 Aprilie 2025, 19:26 | Scor / rezultat | 90 puncte |
mesaj.cpp: In function 'int main()': mesaj.cpp:22:13: warning: array subscript has type 'char' [-Wchar-subscripts] f[actual]++; ^ mesaj.cpp:42:17: warning: array subscript has type 'char' [-Wchar-subscripts] f[actual]++; ^ mesaj.cpp:45:19: warning: array subscript has type 'char' [-Wchar-subscripts] f[prec]--; ^ mesaj.cpp:46:21: warning: array subscript has type 'char' [-Wchar-subscripts] f[actual]--; ^ mesaj.cpp:68:44: warning: array subscript has type 'char' [-Wchar-subscripts] int cost = f[pMajuscula] + f[uMinuscula]; ^ mesaj.cpp:68:60: warning: array subscript has type 'char' [-Wchar-subscripts] int cost = f[pMajuscula] + f[uMinuscula]; ^ mesaj.cpp:70:51: warning: array subscript has type 'char' [-Wchar-subscripts] if(cost > CostMaxim[pMajuscula]){ ^ mesaj.cpp:71:45: warning: array subscript has type 'char' [-Wchar-subscripts] CostMaxim[pMajuscula] = cost; ^ mesaj.cpp:72:50: warning: array subscript has type 'char' [-Wchar-subscripts] deCateOriMaxim[pMajuscula] = 1; ^ mesaj.cpp:74:57: warning: array subscript has type 'char' [-Wchar-subscripts] else if(cost == CostMaxim[pMajuscula]){ ^ mesaj.cpp:75:50: warning: array subscript has type 'char' [-Wchar-subscripts] deCateOriMaxim[pMajuscula]++; ^ mesaj.cpp:85:21: warning: array subscript has type 'char' [-Wchar-subscripts] f[actual]++; ^ mesaj.cpp:115:27: warning: array subscript has type 'char' [-Wchar-subscripts] if(CostMaxim[c]) ^ mesaj.cpp:116:53: warning: array subscript has type 'char' [-Wchar-subscripts] cout << c << " " << deCateOriMaxim[c] << "\n"; ^ mesaj.cpp:12:19: warning: unused variable 'ok' [-Wunused-variable] int i, cnt=0, ok=1, cntt=0; ^ mesaj.cpp:12:25: warning: unused variable 'cntt' [-Wunused-variable] int i, cnt=0, ok=1, cntt=0; ^ mesaj.cpp:17:22: warning: 'puMinuscula' may be used uninitialized in this function [-Wmaybe-uninitialized] char uMinuscula, puMinuscula; ^
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
0 | 0 secunde | OK. | 5 | 5 | ||
1 | 0.048 secunde | OK. | 5 | 5 | ||
2 | 0.016 secunde | OK. | 5 | 5 | ||
3 | 0.056 secunde | OK. | 5 | 5 | ||
4 | 0.04 secunde | OK. | 5 | 5 | ||
5 | 0.084 secunde | OK. | 5 | 5 | ||
6 | 0.096 secunde | OK. | 5 | 5 | ||
7 | 0.04 secunde | OK. | 5 | 5 | ||
8 | 0.036 secunde | OK. | 5 | 5 | ||
9 | 0.056 secunde | OK. | 5 | 5 | ||
10 | 0.008 secunde | OK. | 5 | 5 | ||
11 | 0.008 secunde | OK. | 5 | 5 | ||
12 | 0.04 secunde | OK. | 5 | 5 | ||
13 | 0.036 secunde | OK. | 5 | 5 | ||
14 | 0.008 secunde | OK. | 5 | 5 | ||
15 | 0.008 secunde | Raspuns gresit. | 5 | 0 | ||
16 | 0.032 secunde | Raspuns gresit. | 5 | 0 | ||
17 | 0.06 secunde | OK. | 5 | 5 | ||
18 | 0.02 secunde | OK. | 5 | 5 | ||
19 | 0.04 secunde | OK. | 5 | 5 | ||
Punctaj total | 90 |
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Mesaj face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:
Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.