Colección de números P14998


Statement
 

pdf   zip

html

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 x 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 x unidades.
  • D x: Decrementa el número más grande (uno de ellos, si está repetido) en x unidades.

Entrada

La entrada consiste en una secuencia de órdenes como las descritas, cada una en una línea.

Salida

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

Public test cases
  • 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
    
  • Information
    Author
    Salvador Roura
    Language
    Spanish
    Other languages
    English
    Official solutions
    C++
    User solutions
    C++