#1493
Se consideră alfabetul compus din literele mici, de la a la z, fără diacritice. Se numeşte cuvânt un şir finit, eventual vid, de litere din alfabet. Se numeşte mască un şir de caractere din alfabet având eventual în plus caracterele ? şi * cu următoarea semnificaţie: caracterul ? înlocuieşte oricare din literele de la a la z (o singură literă) iar caracterul * înlocuieşte un cuvânt oarecare, eventual vid, format cu litere de la a la z.
Spre exemplu avem masca a?b*c. Dacă avem 3 cuvinte şi anume abbc, acbaac şi abac atunci primele 2 se potrivesc cu masca.
Considerându-se o listă de cuvinte, să se determine:
a) Numărul de cuvinte distincte.
b) Numărul de cuvinte distincte ce se potrivesc cu o mască dată, adică se pot obţine prin înlocuirea caracterelor ? şi * din mască.
Olimpiada locală de Informatică, Prahova, 2016
| Problema | Masca | Operații I/O |
masca.in/masca.out
|
|---|---|---|---|
| Limita timp | 0.5 secunde | Limita memorie |
Total: 4 MB
/
Stivă 2 MB
|
| Id soluție | #64938605 | Utilizator | |
| Fișier | masca.cpp | Dimensiune | 2.08 KB |
| Data încărcării | 17 Iunie 2026, 19:03 | Scor/rezultat | 0 puncte |
masca.cpp: In function ‘bool check0(std::string&, std::string&)’: masca.cpp:12:22: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare] 12 | for( int i = 0; i < a.size(); i++ ) | ~~^~~~~~~~~~ masca.cpp: In function ‘bool check1(std::string&, std::string&)’: masca.cpp:23:12: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare] 23 | while( i < a.size() && a[i] != '*' ){ | ~~^~~~~~~~~~ masca.cpp: In function ‘bool check2(std::string&, std::string&)’: masca.cpp:42:12: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare] 42 | while( i < a.size() && a[i] != '*' ){ | ~~^~~~~~~~~~ masca.cpp: In function ‘int main()’: masca.cpp:80:17: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare] 80 | for( i = 0; i < s.size(); i++ ) | ~~^~~~~~~~~~
| Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
|---|---|---|---|---|---|---|
| 0 | 0.001 secunde | Raspuns gresit. | 7 | 0 | ||
| 1 | 0.001 secunde | Raspuns gresit. | 7 | 0 | ||
| 2 | 0.001 secunde | Raspuns gresit. | 7 | 0 | ||
| 3 | 0.001 secunde | Raspuns gresit. | 7 | 0 | ||
| 4 | 0.001 secunde | Raspuns gresit. | 7 | 0 | ||
| 5 | 0.001 secunde | Raspuns gresit. | 2 | 0 | ||
| 6 | 0.001 secunde | Raspuns gresit. | 3 | 0 | ||
| 7 | 0.001 secunde | Raspuns gresit. | 3 | 0 | ||
| 8 | 0.001 secunde | Raspuns gresit. | 2 | 0 | ||
| 9 | 0.001 secunde | Raspuns gresit. | 2 | 0 | ||
| 10 | 0.001 secunde | Raspuns gresit. | 7 | 0 | ||
| 11 | 0.001 secunde | Raspuns gresit. | 3 | 0 | ||
| 12 | 0.002 secunde | Raspuns gresit. | 7 | 0 | ||
| 13 | 0.002 secunde | Raspuns gresit. | 5 | 0 | ||
| 14 | 0.002 secunde | Raspuns gresit. | 5 | 0 | ||
| 15 | 0.002 secunde | Raspuns gresit. | 7 | 0 | ||
| 16 | 0.001 secunde | Raspuns gresit. | 3 | 0 | ||
| 17 | 0.001 secunde | Raspuns gresit. | 7 | 0 | ||
| 18 | 0.001 secunde | Raspuns gresit. | 7 | 0 | ||
| 19 | 0.001 secunde | Raspuns gresit. | 2 | 0 | ||
| Punctaj total | 0 | |||||
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Masca 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ă.