Haz un programa que mantenga una colección de números enteros, posiblemente repetidos, y que realice las operaciones según vaya indicando el usuario:
G x: Guarda una copia del número
dado.
C: Consulta el número más grande de la
colección.
E: Elimina el número más grande de la colección (uno
de ellos, si está repetido).
I x: Incrementa el número más grande (uno de ellos,
si está repetido) en
unidades.
D x: Decrementa el número más grande (uno de ellos,
si está repetido) en
unidades.
La entrada consiste en una secuencia de órdenes como las descritas, cada una en una línea.
Para cada consulta hecha, escribid una línea con el número más grande en aquel momento. También, escribid una línea de error para cada operación (excepto la operación de guardar) cuando la colección no tenga ningún número, siguiendo el formato del ejemplo.
Pista: Fíjate que la colección puede tener elementos repetidos. Además, es necesario que tu solución sea muy rápida: si no has usado nunca heaps (priority_queue) o mapas (map), deberías aprovechar para aprender. Tal vez preguntando en el foro... (cuando acabe el concurso, claro).
Autor: Salvador Roura
Input
C G 10 C G -7 C G 20 C I 3 C D 15 C E C G 30 C D 37 E C E C E I 1 C E D 3 G 4 C
Output
error: no hay elementos 10 10 20 23 10 8 30 -7 -7 error: no hay elementos error: no hay elementos error: no hay elementos error: no hay elementos 4