Revizia anterioară Revizia următoare
Fişierul intrare/ieşire: | fbsearch.in, fbsearch.out | Sursă | ONIS 2014, Runda 2 |
Autor | Laurentiu Ion | Adăugată de | |
Timp execuţie pe test | 1.5 sec | Limită de memorie | 131072 kbytes |
Scorul tău | N/A | Dificultate | N/A |
Vezi solutiile trimise | Statistici
Facebook Search
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 K 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).
Date de intrare
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.
Date de ieşire
Î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.
Restricţii
- 1 ≤ N ≤ 100 000
- 1 ≤ M ≤ 1000
- Numarul total de operatii nu va depasi 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.
Exemplu
fbsearch.in | fbsearch.out |
---|---|
1 3 Andrei Popescu Giulia Mateescu Andrei Anton 2 L Giulia Mateescu 4 Q An Q BiEnCuTzA U Andrei Popescu 1 Q andr L Anrei Popescu 1 Q g | Andrei Anton Search Bing for BiEnCuTzA Andrei Popescu |