Aniversaris X79184


Statement
 

pdf   zip

html

Heu d’implementar un programa que manega persones i els anys que tenen. Hi haurà comandes que afegeixen una persona nova indicant quants anys té, comandes que demanen escriure el nombre de persones o la llista de persones amb uns certs anys, i comandes que indiquen que una certa persona celebra el seu aniversari, de manera que els seus anys s’incrementen en una unitat.

Més detalladament, hi ha comandes que afegeixen persones noves i la seva edat (atenció, aquestes comandes d’entrada poden no ser consistents amb la nostra realitat, doncs pot ser el cas que algú tingui una edat arbitràriament gran). Per exemple:

NEWPERSON maria.lapuente 18
NEWPERSON john.smith 23
NEWPERSON nuria.margalef 20
NEWPERSON laura.venture 18
NEWPERSON joel.cabas 21
NEWPERSON pau.margallo 17
NEWPERSON oscar.hoipoi 19

També hi ha comandes que indiquen que algú celebra el seu aniversari, cas en el qual, el seu nombre d’anys s’incrementa en 1 (atenció, aquestes comandes d’entrada poden no ser consistents amb la nostra realitat, doncs pot ser el cas que algú celebri aniversari dos cops abans que algú altri ho faci una sola vegada):

BIRTHDAY maria.lapuente
BIRTHDAY pau.margallo
BIRTHDAY maria.lapuente
BIRTHDAY oscar.hoipoi

També hi ha comandes que demanen quantes persones amb una certa edat hi ha:

NUMBERWITHAGE 18
NUMBERWITHAGE 19
NUMBERWITHAGE 20
NUMBERWITHAGE 23

Incloent les comandes prèvies, la sortida seria aquesta:

2
0
3
1

També hi ha comandes que demanen la llista de persones amb una certa edat, en ordre lexicogràfic:

PEOPLEWITHAGE 18
PEOPLEWITHAGE 19
PEOPLEWITHAGE 20
PEOPLEWITHAGE 23

Incloent les comandes prèvies, la sortida seria aquesta:

laura.venture pau.margallo

maria.lapuente nuria.margalef oscar.hoipoi
john.smith

Observació: Podeu seguir l’enfoc que considereu oportú, i podeu utilitzar qualsevol de les classes presentades al curs (string, vector, stack, queue, list, map, set) de la manera que considereu oportuna. Però tingueu en compte que la vostra elecció pot afectar a l’eficiència de la vostra solució, i per tant al fet de poder superar tots els jocs de proves o només els públics (cosa que us deixarà amb la meitat de la nota).

Entrada

Cada linia de l’entrada consisteix en una instrucció del següent tipus, a on person es pot llegir com string no buit qualsevol, i té menys de 20 caràcters, i natural és un natural qualsevol:

  • NEWPERSON person natural
  • BIRTHDAY person
  • NUMBERWITHAGE natural
  • PEOPLEWITHAGE natural

Se suposa que les dades son correctes en el sentit que NEWPERSON no afegeix persones que ja han estat afegides abans, i que BIRTHDAY s’aplica a persones que ja han estat afegides abans.

Sortida

Per a cada instrucció NUMBERWITHAGE natural, s’escriurà una línia per la sortida amb el nombre de persones amb l’edat indicada.

Per a cada instrucció PEOPLEWITHAGE, s’escriurà una línia per la sortida amb totes les persones de l’edat indicada, ordenada lexicogràficament, i separada per espais en blanc.

Observació

Avaluació sobre 10 punts:

  • Solució lenta: 5 punts.
  • solució ràpida: 10 punts.

Entenem com a solució ràpida una que és correcta, de cost nlog(n) o inferior, i capaç de superar els jocs de proves públics i privats. Entenem com a solució lenta una que no és ràpida, però és correcta i capaç de superar els jocs de proves públics.

Public test cases
  • Input

    NEWPERSON merce.nice 18
    NEWPERSON jose.mola 16
    BIRTHDAY merce.nice
    BIRTHDAY jose.mola
    BIRTHDAY jose.mola
    NEWPERSON joel.cabas 19
    BIRTHDAY merce.nice
    NEWPERSON laura.venture 17
    PEOPLEWITHAGE 17
    BIRTHDAY joel.cabas
    PEOPLEWITHAGE 17
    PEOPLEWITHAGE 20
    NEWPERSON sandra.rain 18
    BIRTHDAY jose.mola
    NEWPERSON manel.rueda 20
    PEOPLEWITHAGE 20
    BIRTHDAY jose.mola
    BIRTHDAY joel.cabas
    BIRTHDAY merce.nice
    BIRTHDAY joel.cabas
    BIRTHDAY laura.venture
    BIRTHDAY manel.rueda
    BIRTHDAY laura.venture
    NUMBERWITHAGE 20
    PEOPLEWITHAGE 22
    BIRTHDAY merce.nice
    BIRTHDAY joel.cabas
    NEWPERSON nuria.margalef 19
    PEOPLEWITHAGE 20
    BIRTHDAY sandra.rain
    NUMBERWITHAGE 22
    BIRTHDAY sandra.rain
    NUMBERWITHAGE 22
    BIRTHDAY merce.nice
    BIRTHDAY manel.rueda
    BIRTHDAY merce.nice
    PEOPLEWITHAGE 17
    PEOPLEWITHAGE 20
    BIRTHDAY laura.venture
    PEOPLEWITHAGE 20
    NEWPERSON angels.herrero 17
    BIRTHDAY manel.rueda
    PEOPLEWITHAGE 19
    BIRTHDAY sandra.rain
    BIRTHDAY jose.mola
    BIRTHDAY sandra.rain
    BIRTHDAY jose.mola
    NUMBERWITHAGE 22
    BIRTHDAY merce.nice
    BIRTHDAY sandra.rain
    BIRTHDAY angels.herrero
    BIRTHDAY jose.mola
    NUMBERWITHAGE 20
    BIRTHDAY angels.herrero
    BIRTHDAY merce.nice
    BIRTHDAY merce.nice
    BIRTHDAY jose.mola
    BIRTHDAY sandra.rain
    PEOPLEWITHAGE 19
    BIRTHDAY manel.rueda
    BIRTHDAY nuria.margalef
    BIRTHDAY joel.cabas
    PEOPLEWITHAGE 24
    BIRTHDAY manel.rueda
    BIRTHDAY manel.rueda
    BIRTHDAY nuria.margalef
    NUMBERWITHAGE 24
    BIRTHDAY merce.nice
    BIRTHDAY manel.rueda
    BIRTHDAY merce.nice
    BIRTHDAY sandra.rain
    BIRTHDAY nuria.margalef
    NUMBERWITHAGE 27
    BIRTHDAY jose.mola
    BIRTHDAY manel.rueda
    BIRTHDAY manel.rueda
    BIRTHDAY sandra.rain
    BIRTHDAY joel.cabas
    NUMBERWITHAGE 29
    PEOPLEWITHAGE 29
    

    Output

    laura.venture
    laura.venture
    joel.cabas merce.nice
    joel.cabas manel.rueda merce.nice
    1
    joel.cabas
    jose.mola
    1
    1
    
    jose.mola sandra.rain
    jose.mola laura.venture sandra.rain
    nuria.margalef
    2
    1
    angels.herrero nuria.margalef
    joel.cabas jose.mola manel.rueda sandra.rain
    3
    1
    2
    manel.rueda merce.nice
    
  • Input

    PEOPLEWITHAGE -1
    NEWPERSON joel.cabas 1
    PEOPLEWITHAGE 1
    NEWPERSON sandra.rain 2
    PEOPLEWITHAGE 3
    PEOPLEWITHAGE 1
    NUMBERWITHAGE 1
    PEOPLEWITHAGE 2
    NEWPERSON merce.nice 2
    NUMBERWITHAGE 2
    PEOPLEWITHAGE 1
    NUMBERWITHAGE 2
    PEOPLEWITHAGE 2
    PEOPLEWITHAGE 1
    PEOPLEWITHAGE 2
    NUMBERWITHAGE 2
    NUMBERWITHAGE 2
    PEOPLEWITHAGE 0
    NUMBERWITHAGE 2
    BIRTHDAY joel.cabas
    BIRTHDAY merce.nice
    NUMBERWITHAGE 2
    NEWPERSON laura.venture 3
    NUMBERWITHAGE 2
    PEOPLEWITHAGE 2
    PEOPLEWITHAGE 3
    BIRTHDAY joel.cabas
    NUMBERWITHAGE 3
    PEOPLEWITHAGE 3
    PEOPLEWITHAGE 3
    BIRTHDAY joel.cabas
    PEOPLEWITHAGE 3
    NUMBERWITHAGE 3
    PEOPLEWITHAGE 2
    NUMBERWITHAGE 2
    BIRTHDAY joel.cabas
    NEWPERSON nuria.margalef 2
    NEWPERSON jose.mola 1
    BIRTHDAY jose.mola
    BIRTHDAY laura.venture
    PEOPLEWITHAGE 4
    PEOPLEWITHAGE 2
    NEWPERSON angels.herrero 3
    BIRTHDAY jose.mola
    NEWPERSON manel.rueda 1
    NUMBERWITHAGE 4
    BIRTHDAY joel.cabas
    PEOPLEWITHAGE 3
    PEOPLEWITHAGE 3
    BIRTHDAY nuria.margalef
    PEOPLEWITHAGE 1
    BIRTHDAY laura.venture
    NUMBERWITHAGE 2
    PEOPLEWITHAGE 5
    PEOPLEWITHAGE 3
    BIRTHDAY sandra.rain
    NUMBERWITHAGE 3
    NUMBERWITHAGE 3
    NUMBERWITHAGE 6
    PEOPLEWITHAGE 5
    BIRTHDAY joel.cabas
    PEOPLEWITHAGE 3
    PEOPLEWITHAGE 3
    PEOPLEWITHAGE 3
    PEOPLEWITHAGE 3
    BIRTHDAY manel.rueda
    PEOPLEWITHAGE 3
    BIRTHDAY nuria.margalef
    PEOPLEWITHAGE 3
    NUMBERWITHAGE 7
    BIRTHDAY merce.nice
    BIRTHDAY joel.cabas
    BIRTHDAY manel.rueda
    NUMBERWITHAGE 4
    PEOPLEWITHAGE 3
    BIRTHDAY angels.herrero
    NUMBERWITHAGE 3
    NUMBERWITHAGE 8
    NUMBERWITHAGE 5
    PEOPLEWITHAGE 0
    

    Output

    joel.cabas
    
    joel.cabas
    1
    sandra.rain
    2
    joel.cabas
    2
    merce.nice sandra.rain
    joel.cabas
    merce.nice sandra.rain
    2
    2
    
    2
    2
    2
    joel.cabas sandra.rain
    laura.venture merce.nice
    3
    joel.cabas laura.venture merce.nice
    joel.cabas laura.venture merce.nice
    laura.venture merce.nice
    2
    sandra.rain
    1
    laura.venture
    jose.mola nuria.margalef sandra.rain
    1
    angels.herrero jose.mola merce.nice
    angels.herrero jose.mola merce.nice
    manel.rueda
    1
    laura.venture
    angels.herrero jose.mola merce.nice nuria.margalef
    5
    5
    1
    laura.venture
    angels.herrero jose.mola merce.nice nuria.margalef sandra.rain
    angels.herrero jose.mola merce.nice nuria.margalef sandra.rain
    angels.herrero jose.mola merce.nice nuria.margalef sandra.rain
    angels.herrero jose.mola merce.nice nuria.margalef sandra.rain
    angels.herrero jose.mola merce.nice nuria.margalef sandra.rain
    angels.herrero jose.mola merce.nice sandra.rain
    1
    2
    angels.herrero jose.mola manel.rueda sandra.rain
    3
    1
    1
    
    
  • Information
    Author
    PRO2
    Language
    Catalan
    Official solutions
    Unknown. This problem is being checked.
    User solutions
    C++