Șablon

Autori: Radu Vișinescu
Publicat de: raresgherasa
Memorie: 8.0MB/2.0MB
Timp de execuție: 0.8s
Operații IO: sablon.in/sablon.out

Se consideră alfabetul englez compus din literele mici, de la $a$ la $z$.

Se numeşte cuvânt un şir finit, eventual vid, de litere din acest alfabet.

Se numeşte expresie şablon un şir de caractere din alfabet în care pot apărea și caracterele $?$ şi $*$.

Un cuvânt se potrivește cu o expresie șablon dacă se poate obține din aceasta astfel:

  • caracterul $?$ se înlocuiește cu o singură literă din alfabet;
  • caracterul $*$ se înlocuiește cu un cuvânt oarecare, eventual vid;
  • din expresia șablon se poate elimina sau nu, înainte de a efectua înlocuirea caracterelor $?$ și $*$, un singur caracter de tip literă.

Cerinţă

Considerându-se o expresie șablon și un șir de cuvinte, să se determine, pentru fiecare cuvânt în parte, dacă se potrivește sau nu cu expresia şablon dată.

Date de intrare

Fişierul de intrare sablon.in conține:

Pe prima linie se găsește o expresie şablon $E$.

Pe a doua linie se găsește un număr natural $N$, ce reprezintă numărul de cuvinte din șir.

Pe fiecare din următoarele $N$ linii se găsește câte un cuvânt $S_i$ ( $ 1 \leq i \leq N $ )

Date de ieşire

Fişierul de ieșire sablon.out va conține pe fiecare din primele $N$ linii valoarea $1$ sau $0$, după cum cuvântul $S_i$ ($1 \leq i \leq N$) se potrivește cu expresia şablon $E$.

Restricţii şi precizări

  • $ 1 \leq N \leq 10 $
  • Pentru 16% din teste expresia șablon $E$ nu conține caracterul $*$ iar lungimea lui $E$ și a oricărui cuvânt $S$ este între $1$ și $1000$ de caractere.
  • Pentru alte 16% din teste lungimile lui $E$ și $S$ sunt cuprinse între $1$ și $20$ de caractere.
  • Pentru alte 32% din teste lungimile lui $E$ și $S$ sunt cuprinse între $1$ și $100$ de caractere.
  • Pentru restul de 36% din teste lungimile lui $E$ și $S$ sunt cuprinse între $1$ și $1500$ de caractere.

Exemplu

sablon.in

a*a?b
7
ababb
aab
aabb
bac
abcaab
abcaab
ababa

sablon.out

1
1
1
0
1
1
0

Explicație

Cuvintele ababb, aabb și abcaab se potrivesc cu expresia şablon.

Cuvântul aab se potrivește cu expresia șablon obținută prin eliminarea în prealabil a unuia din caracterele ‘$a$’.

Cuvintele bac și ababa nu se pot obține în nicio situație din expresia șablon.