== include(page="template/taskheader" task_id="cenzurate") ==
Poveste şi cerinţă...
Scopul acestei teme este de a realiza un program care va filtra mesajele de pe un forum cu discuţii legate de programare şi va executa nişte statistici simple. Filtrarea mesajelor constă în cenzurarea cuvintelor inadecvate.
h2. Date de intrare
Conţinutul unui forum va fi simulat prin conţinutul unui fişier text.
Fişierul de intrare $cenzurate.in$ ...
h2. Cerinţă
h2. Date de ieşire
Se cere să se înlocuiască orice cuvânt care apare în lista de cuvinte inadecvate cu un cuvânt format din prima literă a acestuia şi un număr de steluţe corespunzătoare lungimii cuvântului.
Exemplu:
În fişierul de ieşire $cenzurate.out$ ...
* cenzură - c******
* parte - p****
h2. Restricţii
De asemenea, se cere determinarea celui mai popular utilizator. Se va calcula un scor pentru fiecare utilizator folosind următoarea formulă: $număr_posturi_bune(user) - număr_posturi_rele(user)$.
Un post despre un anumit user ({$A$}) este considerat:
* bun, dacă este postat de un alt user ({$B$}), conţine numele user-ului ({$A$}) şi nu conţine niciun cuvânt inadecvat
* rău, dacă este postat de un alt user ({$B$}), conţine numele user-ului ({$A$}) şi conţine cel puţin un cuvânt inadecvat
h2. Date de intrare
* $... ≤ ... ≤ ...$
Prima linie a fişierului de intrare $cenzurate.in$ conţine $2$ numere:
h2. Exemplu
* N = numărul de utilizatori ai forumului
* K = numărul de cuvinte ce trebuie cenzurate
table(example). |_. cenzurate.in |_. cenzurate.out |
| This is some
text written on
multiple lines.
| This is another
text written on
multiple lines.
|
Urmează apoi $K$ linii. Fiecare linie conţine un cuvânt. Acestea sunt cuvintele ce vor trebui cenzurate.
Urmează N blocuri ce definesc datele fiecărui utilizator. Fiecare utilizator are mai multe mesaje postate pe forum. $K{~1~}, K{~2~}, ..., K{~N~}$ reprezintă numărul de mesaje ale fiecărui utilizator.
h3. Explicaţie
Input:
$N K$
$cuvant_1$
$cuvant_2$
$…$
$cuvant_K$
$Nume_User_1 K{~1~}$
$mesaj_1$
$mesaj_2$
$…$
$mesaj_K{~1~}$
$Nume_User_2 K{~2~}$
$mesaj_1$
$…$
$mesaj_K{~2~}$
…
$Nume_User_N K{~N~}$
$mesaj_1$
$…$
$mesaj_K{~N~}$
h2. Date de ieşire
Fişierul de ieşire $cenzurate.out$ va conţine datele de ieşire în următorul format:
$Nume_User_1$
$mesaje_prelucrate_cate_unul_pe_linie$
$Nume_User_2$
$mesaje_prelucrate_cate_unul_pe_linie$
$…$
$Nume_User_N$
$mesaje_prelucrate_cate_unul_pe_linie$
$Most popular : Nume_User_Cel_Mai_Popular$
h2. Restricţii
...
* linile vor avea maxim $2000$ de caractere
* un mesaj este scris pe o singură linie
* niciun utilizator nu are mai mult de $100$ de postări
* $N ≤ 100$
* $K ≤ 200$
* pot exista mai multi useri care sa aiba scorul maxim de popularitate, iar in acest caz trebuie afisati toti in forma:
$Most popular : user1 user2 user3 ...$
in ordinea in care apar in fisierul de intrare
== include(page="template/taskfooter" task_id="cenzurate") ==
== include(page="template/taskfooter" task_id="cenzurate") ==