Muguraș a început în sfârșit să studieze informatică, iar Mugurel, tatăl său, este cel mai mândru de alegerea făcută de el.
Neștiind care este cel mai bun limbaj pentru începători, el a ales să învețe Mac, cel mai simplu limbaj de programare din „Imperiul Rațelor de Cauciuc”.
În limbajul Mac avem doar două tipuri de operații posibile:
- (atribuire directă). După această operație, variabila identificată prin va reține șirul de caractere dat de .
- (atribuire din memorie). După această operație, variabila identificată prin va reține concatenarea șirurilor de caractere (în această ordine) din variabila identificată prin și cea identificată prin (variabilele și rămân neschimbate, doar variabila se modifică).
Cerință
Mugurel vrea să îl trimită pe Muguraș la Olimpiada Locală de Informatică pentru Rațe, dar prima dată trebuie să se asigure că știe să codeze și îi dă să rezolve următoare problemă: după efectuarea a operații în limbajul Mac, de câte ori apare ca subșir în variabila ?
Din păcate încă este la început de drum, așa că Muguraș vă roagă să îl ajutați să ajungă la Olimpiadă.
Date de intrare
Fișierul de intrare va conține pe prima linie un număr întreg , reprezentând numărul de operații. A doua linie conține două șiruri de caractere, și , separate printr-un spațiu, reprezentând șirul care trebuie căutat și variabila din care trebuie determinat rezultatul. Următoarele linii conțin câte un șir de caractere, reprezentând o operație în limbajul de programare Mac.
Date de ieșire
Fișierul de ieșire va conține pe prima linie un singur număr întreg , reprezentând rezultatul cerut.
Restricții și precizări
Notăm cu lungimea denumirii unei variabile și cu lungimea unui șir din atribuirea directă.
- Toate denumirile variabilelor și șirurile de caractere conțin doar litere mici ale alfabetului englez.
- Un subșir este o secvență consecutivă de caractere dintr-un șir.
- Variabilele folosite la atribuirea din memorie nu conțin niciodată șiruri de caractere vide.
- Se garantează că .
- Se garantează că toate operațiile sunt corecte.
- Muguraș nu vă recomandă să învățați Mac, există limbaje de programare mult mai folositoare.
- Pentru teste în valoare de puncte, și .
- Pentru alte teste în valoare de puncte, .
- Pentru alte teste în valoare de puncte, .
- Pentru alte teste în valoare de puncte, .
- Pentru alte teste în valoare de de puncte, nu există restricții suplimentare
Exemplul 1
muguras.in
5
abc x
p := ab
q := cdef
x = p + q
q := tabc
x = x + q
muguras.out
2
Explicație
După a treia operație, va reține șirul abcdef
. După a cincea operație, va reține șirul abcdeftabc
, în care șirul abc
se regăsește de ori ca subșir.
Exemplul 2
muguras.in
5
haha v
a := haha
b := haha
c := ha
v = a + b
v = v + c
muguras.out
4
Explicație
După a patra operație, va reține șirul hahahaha
. După a cincea operație, va reține șirul hahahahaha
, în care șirul haha
se regăsește de ori ca subșir (literele dintr-un șir pot să apară în mai multe subșiruri).
Exemplul 3
muguras.in
7
a ax
ax := a
ax = ax + ax
ax = ax + ax
ax = ax + ax
ax = ax + ax
ax = ax + ax
ax = ax + ax
muguras.out
64