Fişierul intrare/ieşire:aparitii2.in, aparitii2.outSursăCerc informatică Vianu
AutorCristian FrancuAdăugată defrancuCristian Francu francu
Timp execuţie pe test0.5 secLimită de memorie1536 kbytes
Scorul tăuN/ADificultatenormalnormalnormalnormalnormal

Vezi solutiile 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.inaparitii2.out
aba
abababcaba
3
aaab
aaaaaaaaaaaaaaaaaaaaaaaaa
0
Trebuie sa te autentifici pentru a trimite solutii. Click aici