seti


Timp maxim de execuţie/test:
0.15 secunde
Memorie totala disponibilă/stivă:
16 MB/1 MB

Vasile este convins că nu suntem singuri în Univers. În fiecare seară el înregistrează semnale venite din spaţiu şi le memorează sub forma unui şir T format din litere ale alfabetului latin. Pentru a decodifica mesajele primite din spaţiu, Vasile utilizează un şir auxiliar P asupra căruia efectuează următoarele operaţii:
A: adaugă un caracter la sfârşitul şirului P
Q: află de câte ori şirul P apare ca subsecvenţă a şirului T.
Iniţial şirul P este vid.

Cerinţă

Scrieţi un program care, cunoscând mesajul T şi operaţiile efectuate de Vasile asupra şirului P, afişează răspunsul la operaţiile de tip Q.

Date de intrare

Fişierul de intrare seti.in conţine pe prima linie mesajul T. Pe cea de a doua linie sun descrise operaţiile pe care le efectuează Vasile, sub forma unui şir de caractere. Al i-lea caracter din acest şir este o literă (semnificând faptul că Vasile adaugă litera respectivă la sfârşitul şirului P) sau un ? (semnificând o operaţie de tip Q).

Date de ieşire

Fişierul de ieşire seti.out va conţine câte o linie pentru fiecare operaţie de tip Q, linie pe care va fi scris răspunsul (de câte ori şirul P apare ca subsecvenţă a şirului T).

Restricţii

  • Şirul T conţine cel mult 200 000 litere ale alfabetului latin.
  • Vasile execută cel mult 200 000 de operaţii.
  • Şirul P nu începe cu caracterul '?'.

Exemple

seti.in seti.out
mamamamaiasieulaMamaia
ma?ma?i?e?

5
3
1
0

prof. Emanuela Cerchez
Liceul de Informatică „Grigore Moisil” Iaşi
emanuela.cerchez@gmail.com