#1215
Mesaj
Î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 | #54042840 | Utilizator | |
Fișier | mesaj.cpp | Dimensiune | 4.08 KB |
Data încărcării | 18 Noiembrie 2024, 16:20 | Scor / rezultat | 100 puncte |
mesaj.cpp: In function 'int main()': mesaj.cpp:45:58: warning: array subscript has type 'char' [-Wchar-subscripts] if (isupper(ch)) majCounts[ch] ++; ^ mesaj.cpp:46:58: warning: array subscript has type 'char' [-Wchar-subscripts] if (islower(ch)) minCounts[ch] ++; ^ mesaj.cpp:64:58: warning: array subscript has type 'char' [-Wchar-subscripts] if (isupper(ch)) majCounts[ch] += 2; ^ mesaj.cpp:65:58: warning: array subscript has type 'char' [-Wchar-subscripts] if (islower(ch)) minCounts[ch] += 2; ^ mesaj.cpp:67:59: warning: array subscript has type 'char' [-Wchar-subscripts] int cost = majCounts[majCh] + minCounts[minCh]; ^ mesaj.cpp:67:78: warning: array subscript has type 'char' [-Wchar-subscripts] int cost = majCounts[majCh] + minCounts[minCh]; ^ mesaj.cpp:68:57: warning: array subscript has type 'char' [-Wchar-subscripts] if (cost > maxCost[majCh]) { ^ mesaj.cpp:69:50: warning: array subscript has type 'char' [-Wchar-subscripts] maxCost[majCh] = cost; ^ mesaj.cpp:70:56: warning: array subscript has type 'char' [-Wchar-subscripts] maxCostCounts[majCh] = 1; ^ mesaj.cpp:71:65: warning: array subscript has type 'char' [-Wchar-subscripts] } else if (cost == maxCost[majCh]) { ^ mesaj.cpp:72:56: warning: array subscript has type 'char' [-Wchar-subscripts] maxCostCounts[majCh] ++; ^ mesaj.cpp:107:31: warning: array subscript has type 'char' [-Wchar-subscripts] if (maxCost[ch]) { ^ mesaj.cpp:108:57: warning: array subscript has type 'char' [-Wchar-subscripts] out << ch << ' ' << maxCostCounts[ch] << '\n'; ^
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
0 | 0 secunde | OK. | 5 | 5 | ||
1 | 0.028 secunde | OK. | 5 | 5 | ||
2 | 0.008 secunde | OK. | 5 | 5 | ||
3 | 0.032 secunde | OK. | 5 | 5 | ||
4 | 0.024 secunde | OK. | 5 | 5 | ||
5 | 0.052 secunde | OK. | 5 | 5 | ||
6 | 0.06 secunde | OK. | 5 | 5 | ||
7 | 0.044 secunde | OK. | 5 | 5 | ||
8 | 0.044 secunde | OK. | 5 | 5 | ||
9 | 0.052 secunde | OK. | 5 | 5 | ||
10 | 0.008 secunde | OK. | 5 | 5 | ||
11 | 0.012 secunde | OK. | 5 | 5 | ||
12 | 0.052 secunde | OK. | 5 | 5 | ||
13 | 0.052 secunde | OK. | 5 | 5 | ||
14 | 0.012 secunde | OK. | 5 | 5 | ||
15 | 0.012 secunde | OK. | 5 | 5 | ||
16 | 0.052 secunde | OK. | 5 | 5 | ||
17 | 0.108 secunde | OK. | 5 | 5 | ||
18 | 0.024 secunde | OK. | 5 | 5 | ||
19 | 0.056 secunde | OK. | 5 | 5 | ||
Punctaj total | 100 |
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ă.