#1493
Masca
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 | #30157254 | Utilizator | |
Fișier | masca.cpp | Dimensiune | 1.61 KB |
Data încărcării | 16 Iunie 2021, 15:48 | Scor / rezultat | 20 puncte |
masca.cpp: In function 'void compar(int, int)': masca.cpp:27:44: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int i=0;i<strlen(s[now].sir);++i) ^ masca.cpp:36:30: warning: NULL used in arithmetic [-Wpointer-arith] if(masc[im]==NULL && s[now].sir[ic]==NULL) ^ masca.cpp:36:54: warning: NULL used in arithmetic [-Wpointer-arith] if(masc[im]==NULL && s[now].sir[ic]==NULL) ^ masca.cpp: In function 'int main()': masca.cpp:48:5: warning: 'char* gets(char*)' is deprecated (declared at /usr/include/stdio.h:638) [-Wdeprecated-declarations] gets(masc); ^ masca.cpp:48:14: warning: 'char* gets(char*)' is deprecated (declared at /usr/include/stdio.h:638) [-Wdeprecated-declarations] gets(masc); ^ masca.cpp:51:9: warning: 'char* gets(char*)' is deprecated (declared at /usr/include/stdio.h:638) [-Wdeprecated-declarations] gets(s[i].sir); ^ masca.cpp:51:22: warning: 'char* gets(char*)' is deprecated (declared at /usr/include/stdio.h:638) [-Wdeprecated-declarations] gets(s[i].sir); ^ masca.cpp:44:34: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("masca.in","r",stdin); ^ masca.cpp:45:36: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("masca.out","w",stdout); ^ masca.cpp:47:21: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d\n",&p); ^ masca.cpp:48:15: warning: ignoring return value of 'char* gets(char*)', declared with attribute warn_unused_result [-Wunused-result] gets(masc); ^ masca.cpp:49:21: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d\n",&n); ^ masca.cpp:51:23: warning: ignoring return value of 'char* gets(char*)', declared with attribute warn_unused_result [-Wunused-result] gets(s[i].sir); ^ /tmp/cctUeJqJ.o: In function \`main': masca.cpp:(.text.startup+0x62): warning: the \`gets' function is dangerous and should not be used.
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
0 | 0 secunde | Raspuns gresit. | 7 | 0 | ||
1 | 0.008 secunde | Raspuns gresit. | 7 | 0 | ||
2 | 0.004 secunde | Raspuns gresit. | 7 | 0 | ||
3 | 0 secunde | Raspuns gresit. | 7 | 0 | ||
4 | 0 secunde | Raspuns gresit. | 7 | 0 | ||
5 | 0 secunde | OK. | 2 | 2 | ||
6 | 0 secunde | OK. | 3 | 3 | ||
7 | 0 secunde | OK. | 3 | 3 | ||
8 | 0 secunde | OK. | 2 | 2 | ||
9 | 0 secunde | OK. | 2 | 2 | ||
10 | 0 secunde | Raspuns gresit. | 7 | 0 | ||
11 | 0 secunde | OK. | 3 | 3 | ||
12 | 0 secunde | Raspuns gresit. | 7 | 0 | ||
13 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
14 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
15 | 0 secunde | Raspuns gresit. | 7 | 0 | ||
16 | 0 secunde | OK. | 3 | 3 | ||
17 | 0 secunde | Raspuns gresit. | 7 | 0 | ||
18 | 0 secunde | Raspuns gresit. | 7 | 0 | ||
19 | 0 secunde | OK. | 2 | 2 | ||
Punctaj total | 20 |
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ă.