timbre

Time limit: 0.1s Memory limit: 64MB Input: timbre.in Output: timbre.out

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:

  1. Determină numărul de serii distincte din care fac parte timbrele primite;
  2. Determină numărul de timbre unicat (care nu au dublură);
  3. 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ă (11, 22 sau 33). Pe a doua linie se află un număr natural NN, reprezentând numărul de timbre primite de Vasilică. Pe fiecare dintre următoarele NN 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 11 sau 22, 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 33, 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

  • 1N1001 \leq N \leq 100;
  • Valorile timbrelor sunt numere naturale nenule mai mici sau egale cu 1 0001 \ 000;
  • Denumirile seriilor sunt formate din cel mult 5050 de caractere (litere, cifre, spaţiu, cratimă);
  • Pentru fiecare cerinţă se acordă 33%33\% 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ă 33 serii distincte (Cap-de-bour, Romania 100 şi CRACIUN 2018). În aceste serii există doar două timbre unicat (timbrul cu valoarea 77 din seria Cap-de-bour şi cel din seria CRACIUN 2018). Seriile având valoarea cea mai mare (1515) sunt (în ordine lexicografică) CRACIUN 2018 şi Romania 100.

Log in or sign up to be able to send submissions!