Max, min, sum actuals d’una seqüència d’afegir i esborrar

Escriviu un programa que llegeix i executa una seqüència d’instruccions que s’apliquen sobre un multiconjunt d’enters inicialment buit. Aquestes instruccions poden afegir noves ocurrències d’enters al multiconjunt o eliminar-les. També poden preguntar pel nombre d’ocurrències d’un enter en el multiconjunt i quins son l’element màxim i mínim actuals del multiconjunt, o la suma de tots els elements del multiconjunt.

Entrada

La entrada consisteix en una seqüència de línies amb instruccions que s’apliquen sobre un multiconjunt que se suposa inicialment buit. Les instruccions son dels següents possibles tipus (a on x representa un enter qualsevol):

add x
remove x
occurrences x
max
min
sum

La instrucció add afegeix una nova ocurrència de l’enter x al multiconjunt. La instrucció remove elimina una de les ocurrències de l’element x del multiconjunt (es garanteix que hi haurà alguna ocurrència d’aquest x). La instrucció occurrences pregunta quantes ocurrències té l’element x al multiconjunt. Les instruccions max, min i sum pregunten per l’element màxim, mínim, i la suma de tots els elements que hi han actualment en el multiconjunt, respectivament. No es preguntarà pel màxim o el mínim quan no hi ha cap element al multiconjunt.

Sortida

Per a cada petició occurrences x, max, min o sum, la sortida té la resposta en una nova línia.

Observació

Podeu mirar de solucionar aquest exercici amb qualsevol de les estructures de dades presentades al curs, però, en principi, només una solució amb map hauria de ser prou eficient per a superar els jocs de proves privats.

Informació del problema

Autoria: PRO2

Generació: 2026-01-25T16:58:26.110Z

© Jutge.org, 2006–2026.
https://jutge.org