Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2012-04-13 20:46:13.
Revizia anterioară   Revizia următoare  

 

Fişierul intrare/ieşire:search.in, search.outSursăONI 2012 - clasele 11-12
AutorVlad DutaAdăugată deSpiderManSimoiu Robert SpiderMan
Timp execuţie pe test0.5 secLimită de memorie65536 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Search

Pojărel are o listă de N fişiere, fiecare având numele format doar din litere mici ale alfabetului latin. El vrea să implementeze un motor de căutare care să funcţioneze în timp real, adică imediat ce utilizatorul inserează sau şterge o literă din câmpul de căutare, să i se returneze numărul de fişiere care corespund şirului introdus la momentul respectiv. Un fişier corespunde căutarii dacă numele acestuia conţine şirul căutat ca subşir. Mai precis, caracterele din câmpul de căutare trebuie să apară în numele fişierului în aceeaşi ordine, însă nu neapărat pe poziţii consecutive.

Cerinţă

Fiind dată lista care conţine numele fişierelor, determinaţi numărul de fişiere care va fi returnat după fiecare introducere sau ştergere a unui caracter din câmpul de căutare.

h2. Date de intrare

Fişierul de intrare search.in conţine pe prima linie două numere naturale N şi M, reprezentând numărul de fişiere, respectiv numărul de operaţii care se fac asupra câmpului de căutare. Pe următoarele N linii se găsesc cele N nume de fişiere, formate doar din litere mici ale alfabetului latin. Urmează apoi M linii care descriu operaţiile în ordinea în care sunt efectuate. Astfel, pe fiecare linie i se afla un singur caracter care descrie operaţia i. Acest caracter este fie o literă, ceea ce înseamnă că s-a introdus litera respectivă în câmpul de căutare, fie caracterul '-', ceea ce înseamnă că s-a şters ultima literă din câmpul de căutare.

Date de ieşire

Fişierul de ieşire search.out va conţine M linii. Pe linia i (1 ≤ i ≤ M) se va afişa numărul de fişiere returnate de motorul de căutare după efectuarea primelor i operaţii.

Restricţii

  • ... ≤ ... ≤ ...

Exemplu

search.insearch.out
This is some
text written on
multiple lines.
This is another
text written on
multiple lines.

Explicaţie

...

Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?