Vasilică a devenit filatelist pasionat. Din acest motiv toţi prietenii i-au adus de ziua lui timbre, foarte multe timbre. Acum încearcă să organizeze timbrele primite.
Fiecare timbru face parte dintr-o serie şi are o valoare. Timbre distincte din aceeaşi serie au valori distincte. Este posibil ca Vasilică să fi primit şi dubluri (adică să fi primit acelaşi timbru de mai multe ori).
Valoarea unei serii este egală cu suma valorilor timbrelor distincte din seria respectivă. Dublurile nu contribuie la valoarea seriei, dar Vasilică le poate folosi pentru a face schimb de timbre cu alţi filatelişti.
Cerință
Cunoscând lista timbrelor primite, scrieţi un program care să rezolve următoarele cerinţe:
- Determină numărul de serii distincte din care fac parte timbrele primite;
- Determină numărul de timbre unicat (care nu au dublură);
- Determină seriile cu cea mai mare valoare.
Date de intrare
Fişierul de intrare timbre.in
conţine pe prima linie cerinţa care trebuie să fie rezolvată (, sau ). Pe a doua linie se află un număr natural , reprezentând numărul de timbre primite de Vasilică. Pe fiecare dintre următoarele linii este descris câte un timbru. Un timbru este format dintr-o serie (denumirea seriei din care face parte timbrul respectiv) și dintr-o valoare (un număr reprezentând valoarea timbrului respectiv); seria şi valoarea sunt separate printr-un singur spaţiu.
Date de ieşire
Dacă cerinţa este sau , fişierul de ieşire timbre.out
va conţine pe prima linie un număr, reprezentând răspunsul la cerinţa respectivă. Dacă cerinţa este , fişierul de ieşire timbre.out
va conţine denumirile seriilor cu valoarea cea mai mare, câte o denumire pe o linie, în ordine lexicografică.
Restricții și precizări
- ;
- Valorile timbrelor sunt numere naturale nenule mai mici sau egale cu ;
- Denumirile seriilor sunt formate din cel mult de caractere (litere, cifre, spaţiu, cratimă);
- Pentru fiecare cerinţă se acordă din punctajul obţinut pe teste.
Exemplul 1
timbre.in
1
9
Cap-de-bour 4
Romania 100 10
Cap-de-bour 7
Cap-de-bour 4
Romania 100 5
Romania 100 5
Romania 100 5
CRACIUN 2018 15
Romania 100 10
timbre.out
3
Exemplul 2
timbre.in
2
9
Cap-de-bour 4
Romania 100 10
Cap-de-bour 7
Cap-de-bour 4
Romania 100 5
Romania 100 5
Romania 100 5
CRACIUN 2018 15
Romania 100 10
timbre.out
2
Exemplul 3
timbre.in
3
9
Cap-de-bour 4
Romania 100 10
Cap-de-bour 7
Cap-de-bour 4
Romania 100 5
Romania 100 5
Romania 100 5
CRACIUN 2018 15
Romania 100 10
timbre.out
CRACIUN 2018
Romania 100
Explicații
Există serii distincte (Cap-de-bour
, Romania 100
şi CRACIUN 2018
). În aceste serii există doar două timbre unicat (timbrul cu valoarea din seria Cap-de-bour
şi cel din seria CRACIUN 2018
). Seriile având valoarea cea mai mare () sunt (în ordine lexicografică) CRACIUN 2018
şi Romania 100
.