Fișierul intrare/ieșire | aparitii2.in, aparitii2.out | Sursă | Cerc informatică Vianu |
---|---|---|---|
Autor | Cristian Frâncu | Adăugată de |
|
Timp de execuție pe test | 0.5 sec | Limită de memorie | 1536 KB |
Scorul tău | N/A | Dificultate |
Vezi soluțiile trimise | Statistici
Apariții 2 (clasa a 7-a)
Notă: aceasta este o problemă didactică, pentru învățarea recursivității în limbajul C. Drept pentru care soluția trebuie să fie un program C (extensie .c), nu are voie să folosească bucle (fără instrucțiuni while, for sau echivalente) și nu are voie să folosească instrucțiuni cu șiruri (să includă string.h sau să folosească fgets()).
Se dă un cuvînt format numai din litere mici ale alfabetului latin (a, b, ... z). Se dă și un text format din aceleași caractere. Să se spună de cîte ori apare cuvîntul în text. Sînt permise suprapuneri.
Cerință
Scrieți un program în limbajul C, care nu conține instrucțiuni de ciclare și care afișează de cîte ori apare un cuvînt într-un text.
Date de intrare
Fișierul de intrare aparitii2.in conține pe prima linie cuvîntul și pe a doua linie textul. Ambele linii se termină cu caracterul sfîrșit de linie (\n).
Date de ieșire
În fișierul de ieșire aparitii2.out se va scrie un singur număr, de cîte ori apare cuvîntul în text.
Restricții
- 1 ≤ lungime cuvînt ≤ 100
- 1 ≤ lungime text ≤ 1000000
- atît cuvîntul cît și textul conțin numai litere mici
- aparițiile cuvîntului se pot suprapune în text
- sursa trimisă trebuie să fie C (extensie .c)
- sursa trimisă nu are voie să conțină instrucțiuni de ciclare (while, for, etc)
- sursa trimisă nu are voie să includă headerul string.h
- sursa trimisă nu are voie să folosească funcții de bibliotecă care lucrează cu șiruri, gen fgets()
Exemple
aparitii2.in | aparitii2.out |
---|---|
aba abababcaba |
3 |
aaab aaaaaaaaaaaaaaaaaaaaaaaaa |
0 |