#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 | #59427580 | Utilizator | |
| Fișier | masca.cpp | Dimensiune | 1.45 KB |
| Data încărcării | 29 Septembrie 2025, 08:44 | Scor/rezultat | Eroare de compilare |
masca.cpp: In function 'int main()': masca.cpp:22:19: error: invalid conversion from 'int' to 'const char*' [-fpermissive] i=strlen(n); ^ In file included from /usr/include/c++/4.8/cstring:42:0, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:48, from masca.cpp:1: /usr/include/string.h:399:15: error: initializing argument 1 of 'size_t strlen(const char*)' [-fpermissive] extern size_t strlen (const char *__s) ^ masca.cpp:39:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] while(i<strlen(msk) && ok==1) ^ masca.cpp:41:30: warning: suggest parentheses around assignment used as truth value [-Wparentheses] if(msk[i]='?') ^ masca.cpp:61:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] while(i<strlen(msk) && ok==1) ^ masca.cpp:63:30: warning: suggest parentheses around assignment used as truth value [-Wparentheses] if(msk[i]='?') ^ masca.cpp:12:16: warning: unused variable 'nrsum' [-Wunused-variable] int cer,nr,nrsum=0,j=0,i,nrstelute=0,b1,n; ^
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ă.