== include(page="template/taskheader" task_id="fbsearch") ==
Poveste şi cerinţă...
Pentru aceasta problema va trebui sa implementati functia de cautare de la Facebook. Atunci cand scriem numele unei persoane, Facebook ne da sugestii inca de la prima litera introdusa. Aceste sugestii sunt personalizate in functie de relevanta lor pentru fiecare utilizator. Astfel daca Traian scrie "e" va fi autocompletat "Emil Boc", iar daca Vasile scrie "e" va fi autocompletat "Elena Popescu".
Se vor da $M$ autentificari apoi operatii pentru utilizatorul curent:
* $L Prenume Nume K$ - Se autentifica utilizatorul specificat, si urmeaza $K$ operatii pentru acesta:
** $Q X$ - Afiseaza rezultatul cautarii pentru stringul $X$ introdus, in functie de relevanta. Daca doi utilizatori au aceeasi relevanta se va afisa cel mai mic (lexicografic).
** $U Prenume Nume R$ - Relevanta utilizatorului specificat pentru utilizatorul curent se modifica cu $R$ (acesta este in functie de interese comune, proximitate, like-uri etc).
h2. Date de intrare
Fişierul de intrare $fbsearch.in$ ...
Fişierul de intrare $fbsearch.in$ contine pe prima linie $T$, numarul de teste. In continuare, pentru fiecare test se vor gasi:
Pe prima linie $N$, numarul de utilizatori.
Pe urmatoarele $N$ linii, utilizatorii de forma "Prenume Nume".
Pe urmatoarea linie $M$, numarul de autentificari.
Pe urmatoarele linii urmeaza operatiile descrise.
h2. Date de ieşire
În fişierul de ieşire $fbsearch.out$ ...
În fişierul de ieşire $fbsearch.out$ se vor afisa raspunsurile la intrebarile de tip $Q$.
Daca nu exista niciun raspuns se va afisa "Search Bing for $X$", unde $X$ este stringul cautat.
h2. Restricţii
* $... ≤ ... ≤ ...$
* $1 ≤ N ≤ 1000$
* $1 ≤ M ≤ 100 000$
/* Utilizatorii si query-urile nu vor depasi 32 de caractere.
* Nu se tine cont de litere mari la cautari, dar utilizatorii trebuie afisati ca in fisierul de intrare.
* Initial relevanta este 0 pentru toti utilizatorii.
h2. Exemplu
table(example). |_. fbsearch.in |_. fbsearch.out |
| This is some
text written on
multiple lines.
| This is another
text written on
multiple lines.
| 1
3
Andrei Popescu
Giulia Mateescu
Andrei Anton
2
L Giulia Mateescu 4
Q An
Q BiEnCuTzA
U Andrei Popescu
Q andr
L Anrei Popescu 1
Q g
| Andrei Anton
Search Bing for BiEnCuTzA
Andrei Popescu
|
h3. Explicaţie
...
== include(page="template/taskfooter" task_id="fbsearch") ==