#2352
Gigel a inventat un nou joc, de această dată utilizând un rebus sub forma de tablă pătratică cu n x n căsuțe. Fiecare căsuță conține câte o literă mare din alfabetul englez sau caracterul '.'. Literele formează pe orizontală sau pe verticală cuvinte delimitate prin caractere punct sau prin marginile tablei. Cel care joacă trebuie să determine cuvintele speciale din careu. Punctajul unui cuvânt se calculează ca suma codurilor ASCII ale literelor distincte care apar în acel cuvânt. Punctajul total al jocului se calculează însumând punctajele literelor distincte ale cuvintelor speciale distincte. Un cuvânt special îndeplinește simultan condițiile:
Să se scrie un program care sa determine, pentru un careu dat, punctajul maxim și cuvintele care permit obținerea punctajului maxim. Dacă nu există astfel de cuvinte se va afișa valoarea 0.
Olimpiada Municipala de Informatica, Iasi, 2018
| Problema | careu | Operații I/O |
careu.in/careu.out
|
|---|---|---|---|
| Limita timp | 0.5 secunde | Limita memorie |
Total: 2 MB
/
Stivă 2 MB
|
| Id soluție | #64789101 | Utilizator | |
| Fișier | careu.cpp | Dimensiune | 3.13 KB |
| Data încărcării | 31 Mai 2026, 20:03 | Scor/rezultat | 40 puncte |
careu.cpp: In function ‘bool e_palindrom(char*)’: careu.cpp:10:13: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare] 10 | while(i < strlen(t) / 2) | ~~^~~~~~~~~~~~~~~ careu.cpp: In function ‘int main()’: careu.cpp:46:38: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare] 46 | if(strlen(t) > l_max) l_max = strlen(t); | ~~~~~~~~~~^~~~~~~ careu.cpp:56:38: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare] 56 | if(strlen(t) > l_max) l_max = strlen(t); | ~~~~~~~~~~^~~~~~~ careu.cpp:74:53: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare] 74 | if(e_palindrom(t) and strlen(t) == l_max) | ~~~~~~~~~~^~~~~~~~ careu.cpp:76:41: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare] 76 | for(int m = 0; m< strlen(t); m++) | ~^~~~~~~~~~~ careu.cpp:78:35: warning: array subscript has type ‘char’ [-Wchar-subscripts] 78 | fr[t[m]] = 1; | ~~~^ careu.cpp:89:53: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare] 89 | if(e_palindrom(t) and strlen(t) == l_max) | ~~~~~~~~~~^~~~~~~~ careu.cpp:91:41: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare] 91 | for(int m = 0; m< strlen(t); m++) | ~^~~~~~~~~~~ careu.cpp:93:35: warning: array subscript has type ‘char’ [-Wchar-subscripts] 93 | fr[t[m]] = 1; | ~~~^ careu.cpp:116:19: warning: array subscript has type ‘char’ [-Wchar-subscripts] 116 | if(fr[t] == 1)sum+=int(t); | ^
| Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
|---|---|---|---|---|---|---|
| 0 | 0.001 secunde | Raspuns gresit. | 3 | 0 | ||
| 1 | 0.001 secunde | OK. | 3 | 3 | ||
| 2 | 0.001 secunde | OK. | 3 | 3 | ||
| 3 | 0.002 secunde | Raspuns gresit. | 6 | 0 | ||
| 4 | 0.007 secunde | OK. | 6 | 6 | ||
| 5 | 0.001 secunde | Raspuns gresit. | 6 | 0 | ||
| 6 | 0.001 secunde | Raspuns gresit. | 3 | 0 | ||
| 7 | 0.005 secunde | Raspuns gresit. | 6 | 0 | ||
| 8 | 0.002 secunde | OK. | 3 | 3 | ||
| 9 | 0.001 secunde | Raspuns gresit. | 6 | 0 | ||
| 10 | 0.006 secunde | Raspuns gresit. | 6 | 0 | ||
| 11 | 0.006 secunde | OK. | 3 | 3 | ||
| 12 | 0.014 secunde | Raspuns gresit. | 6 | 0 | ||
| 13 | 0.006 secunde | OK. | 3 | 3 | ||
| 14 | 0.001 secunde | Raspuns gresit. | 6 | 0 | ||
| 15 | 0.001 secunde | OK. | 3 | 3 | ||
| 16 | 0.006 secunde | Raspuns gresit. | 6 | 0 | ||
| 17 | 0.006 secunde | OK. | 3 | 3 | ||
| 18 | 0.013 secunde | Raspuns gresit. | 6 | 0 | ||
| 19 | 0.005 secunde | OK. | 3 | 3 | ||
| 20 | 0.001 secunde | OK. | 3 | 3 | ||
| 21 | 0.001 secunde | OK. | 3 | 3 | ||
| 22 | 0.002 secunde | OK. | 4 | 4 | ||
| Punctaj total | 40 | |||||
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema careu 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ă.