Heu d’implementar un programa que manega els diners dels comptes de clients d’un banc i monitoritza quants i quins d’aquests clients estan en nombres vermells (diners negatius).
Al principi de l’execució se suposa que tothom té saldo 0.
L’entrada consistirà en una llista de comandes. Entre elles, hi ha comandes de moviments bancaris, que afegeixen o treuen diners a un client. Per exemple:
TRANSACTION maria.lapuente 10 TRANSACTION maria.lapuente -8 TRANSACTION john.smith -3 TRANSACTION nuria.margalef 5 TRANSACTION laura.venture -15 TRANSACTION maria.lapuente -5 TRANSACTION laura.venture 20 TRANSACTION maria.lapuente 2 TRANSACTION nuria.margalef 10
També hi ha comandes que demanen quantes persones en nombres vermells hi ha:
NUMBERINRED
Incloent les comandes prèvies de moviments bancaris, la sortida seria aquesta:
2
També hi ha comandes que demanen la llista de persones en nombres vermells, en ordre lexicogràfic:
PEOPLEINRED
Incloent les comandes prèvies de moviments bancaris, la sortida seria aquesta:
john.smith maria.lapuente
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 client es pot llegir com string no buit qualsevol, i té menys de 20 caràcters, i integer és un enter qualsevol:
Sortida
Per a cada instrucció NUMBERINRED, s’escriurà una línia per la sortida amb el nombre de clients actuals en vermell.
Per a cada instrucció PEOPLEINRED, s’escriurà una línia per la sortida amb tots els clients actuals en vermell, ordenada lexicogràficament, i separada per espais en blanc.
Observació
Avaluació sobre 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.
Input
TRANSACTION merce.nice -1 TRANSACTION jose.mola 0 TRANSACTION laura.venture 5 PEOPLEINRED TRANSACTION joel.cabas 10 TRANSACTION joel.cabas -3 NUMBERINRED TRANSACTION laura.venture 6 TRANSACTION nuria.margalef 2 TRANSACTION merce.nice -5 TRANSACTION joel.cabas -9 TRANSACTION jose.mola -10 TRANSACTION manel.rueda 7 TRANSACTION jose.mola -3 TRANSACTION manel.rueda 5 TRANSACTION sandra.rain 4 TRANSACTION jose.mola 10 TRANSACTION joel.cabas 5 TRANSACTION merce.nice -3 TRANSACTION laura.venture -1 TRANSACTION manel.rueda -9 PEOPLEINRED TRANSACTION sandra.rain 1 TRANSACTION nuria.margalef -5 TRANSACTION jose.mola 0 TRANSACTION laura.venture -7 TRANSACTION jose.mola 7 TRANSACTION manel.rueda 4 TRANSACTION merce.nice -3 NUMBERINRED NUMBERINRED TRANSACTION laura.venture 8 TRANSACTION joel.cabas -2 TRANSACTION laura.venture 8 TRANSACTION nuria.margalef -3 TRANSACTION manel.rueda -4 TRANSACTION joel.cabas 8 TRANSACTION manel.rueda -3 TRANSACTION jose.mola 4 TRANSACTION sandra.rain -10 TRANSACTION laura.venture -6 TRANSACTION merce.nice 3 TRANSACTION jose.mola 3 TRANSACTION nuria.margalef -7 TRANSACTION sandra.rain -7 TRANSACTION jose.mola -5 TRANSACTION angels.herrero 8 TRANSACTION jose.mola 2 TRANSACTION sandra.rain -9 TRANSACTION joel.cabas -5 TRANSACTION angels.herrero 1 TRANSACTION angels.herrero 1 TRANSACTION nuria.margalef 0 TRANSACTION laura.venture -1 NUMBERINRED TRANSACTION manel.rueda 9 TRANSACTION joel.cabas -6 TRANSACTION joel.cabas -9 TRANSACTION laura.venture 3 TRANSACTION jose.mola 3 TRANSACTION laura.venture 8 TRANSACTION joel.cabas -2 TRANSACTION joel.cabas 7 PEOPLEINRED TRANSACTION nuria.margalef 6 TRANSACTION sandra.rain 3 TRANSACTION angels.herrero 2 PEOPLEINRED TRANSACTION joel.cabas 4 PEOPLEINRED TRANSACTION jose.mola 7 TRANSACTION angels.herrero -7 NUMBERINRED TRANSACTION nuria.margalef 3 TRANSACTION joel.cabas 10 TRANSACTION merce.nice 6 TRANSACTION manel.rueda -10 NUMBERINRED NUMBERINRED PEOPLEINRED
Output
merce.nice 1 jose.mola merce.nice 2 2 3 joel.cabas merce.nice nuria.margalef sandra.rain joel.cabas merce.nice nuria.margalef sandra.rain joel.cabas merce.nice nuria.margalef sandra.rain 4 4 4 manel.rueda merce.nice nuria.margalef sandra.rain
Input
PEOPLEINRED PEOPLEINRED NUMBERINRED PEOPLEINRED TRANSACTION angels.herrero 0 NUMBERINRED NUMBERINRED PEOPLEINRED TRANSACTION joel.cabas 10 PEOPLEINRED TRANSACTION merce.nice -7 NUMBERINRED PEOPLEINRED PEOPLEINRED TRANSACTION nuria.margalef 2 NUMBERINRED TRANSACTION manel.rueda -5 PEOPLEINRED PEOPLEINRED PEOPLEINRED TRANSACTION manel.rueda -7 NUMBERINRED TRANSACTION angels.herrero -9 PEOPLEINRED PEOPLEINRED PEOPLEINRED NUMBERINRED NUMBERINRED NUMBERINRED TRANSACTION nuria.margalef 0 TRANSACTION laura.venture -8 NUMBERINRED TRANSACTION merce.nice -3 TRANSACTION laura.venture -1 TRANSACTION manel.rueda -9 PEOPLEINRED NUMBERINRED NUMBERINRED TRANSACTION angels.herrero 7 TRANSACTION merce.nice 8 PEOPLEINRED TRANSACTION laura.venture -7 NUMBERINRED NUMBERINRED TRANSACTION angels.herrero 1 TRANSACTION joel.cabas 4 PEOPLEINRED NUMBERINRED NUMBERINRED TRANSACTION laura.venture 8 NUMBERINRED TRANSACTION manel.rueda -9 NUMBERINRED NUMBERINRED TRANSACTION nuria.margalef -3 PEOPLEINRED PEOPLEINRED NUMBERINRED NUMBERINRED TRANSACTION joel.cabas -3 TRANSACTION manel.rueda -2 NUMBERINRED TRANSACTION merce.nice -7 NUMBERINRED PEOPLEINRED TRANSACTION sandra.rain -8 TRANSACTION jose.mola -10 TRANSACTION laura.venture -2 PEOPLEINRED NUMBERINRED NUMBERINRED PEOPLEINRED NUMBERINRED TRANSACTION jose.mola -5 NUMBERINRED PEOPLEINRED NUMBERINRED PEOPLEINRED NUMBERINRED PEOPLEINRED
Output
0 0 0 1 merce.nice merce.nice 1 manel.rueda merce.nice manel.rueda merce.nice manel.rueda merce.nice 2 angels.herrero manel.rueda merce.nice angels.herrero manel.rueda merce.nice angels.herrero manel.rueda merce.nice 3 3 3 4 angels.herrero laura.venture manel.rueda merce.nice 4 4 angels.herrero laura.venture manel.rueda merce.nice 4 4 angels.herrero laura.venture manel.rueda merce.nice 4 4 4 4 4 angels.herrero laura.venture manel.rueda merce.nice nuria.margalef angels.herrero laura.venture manel.rueda merce.nice nuria.margalef 5 5 5 5 angels.herrero laura.venture manel.rueda merce.nice nuria.margalef angels.herrero jose.mola laura.venture manel.rueda merce.nice nuria.margalef sandra.rain 7 7 angels.herrero jose.mola laura.venture manel.rueda merce.nice nuria.margalef sandra.rain 7 7 angels.herrero jose.mola laura.venture manel.rueda merce.nice nuria.margalef sandra.rain 7 angels.herrero jose.mola laura.venture manel.rueda merce.nice nuria.margalef sandra.rain 7 angels.herrero jose.mola laura.venture manel.rueda merce.nice nuria.margalef sandra.rain