#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 | #59453313 | Utilizator | |
| Fișier | masca.cpp | Dimensiune | 2.84 KB |
| Data încărcării | 30 Septembrie 2025, 11:15 | Scor/rezultat | Eroare de compilare |
masca.cpp: In function 'int main()': masca.cpp:18:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(x=0; x<strlen(s); x++) ^ masca.cpp:34:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(i=0; i<strlen(masc); i++) ^ masca.cpp:36:17: error: 'nrstea' was not declared in this scope nrstea++; ^ masca.cpp:43:17: error: 'lstea' was not declared in this scope lstea=strlen(s)-strlen(masc)+1; ^ masca.cpp:45:17: error: 'j' was not declared in this scope j=0; ^ masca.cpp:46:17: error: 'ok' was not declared in this scope ok=1; ^ masca.cpp:47:36: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] while(i<strlen(masc)&&ok==1) ^ masca.cpp:52:25: error: expected ';' before 'i' i++,j+=lstea; ^ masca.cpp:53:21: error: 'else' without a previous 'if' else if(m[i]==s[i]) ^ masca.cpp:53:29: error: 'm' was not declared in this scope else if(m[i]==s[i]) ^ masca.cpp:61:21: error: 'nrstea' was not declared in this scope else if(nrstea==2) ^ masca.cpp:63:17: error: 'lstele' was not declared in this scope lstele=strlen(s)-strlen(masc)+1; ^ masca.cpp:65:17: error: 'j' was not declared in this scope j=0; ^ masca.cpp:66:17: error: 'ok' was not declared in this scope ok=1; ^ masca.cpp:67:36: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] while(i<strlen(masc)&&ok==1) ^ masca.cpp:70:25: error: 'nr2' was not declared in this scope nr2=0; ^ masca.cpp:71:29: error: 'lstrea1' was not declared in this scope for(lstrea1=0; lstea1<lstele; lstrea1++) ^ masca.cpp:71:40: error: 'lstea1' was not declared in this scope for(lstrea1=0; lstea1<lstele; lstrea1++) ^ masca.cpp:74:29: error: 'lstrea2' was not declared in this scope lstrea2=lstele-lstea1; ^ masca.cpp:79:37: error: expected ';' before 'if' if(nr2==0) ^ masca.cpp:94:17: error: 'j' was not declared in this scope j=0; ^ masca.cpp:95:17: error: 'ok' was not declared in this scope ok=1; ^ masca.cpp:96:36: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] while(i<strlen(masc)&&ok==1) ^ masca.cpp:100:29: error: 'm' was not declared in this scope else if(m[i]==s[i]) ^ masca.cpp:9:16: warning: unused variable 'max1' [-Wunused-variable] int nr=0,x,max1=-1,n,cerinta,i; ^
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ă.