Tarea 4 de Algoritmos y Estructuras de Datos

Trimestre 2014 Primavera
Entrega: 23 de mayo de 2014 a las 22:00

Una cola de prioridad es un tipo de datos abstracto que permite insertar datos arbitrarios y eliminar siempre al mayor. En esta tarea implementarás una cola de prioridad estática de enteros con verificación de errores (no se permite eliminar datos de una cola de prioridad vacía y no se permite agregar datos a una cola de prioridad llena).

Escribe un programa llamado prioridadNN.c (donde NN es tu número de lista) que:
  1. Lea el tamaño T de la cola de prioridad y la inicialize.
  2. Lea y efectúe M operaciones en la cola de prioridad.
  3. Escriba el resultado de esas operaciones.
La entrada comenzará con los valores de T y M, después aparecerán las M operaciones que debes hacer. Las operaciones estarán representadas de esta forma:
  1. La inserción se representará por el carácter 'I' seguido del entero N que se desea insertar.
  2. La eliminación del mayor se representará por el carácter 'E'.
El resultado de cada operación será 0 0 (si hubo error) o 1 seguido del entero que se insertó o eliminó (si hubo éxito).

En el primer ejemplo de abajo se declara una cola de prioridad de tamaño 3 y se hacen 5 operaciones, la primera de las cuales representa un error.

Puedes suponer que 1 <= T, M, N <= 1000.

Entrada 1
Salida 1
Entrada 2
Salida 2
3 5
E
I 3
I 5
I 1
E
0 0
1 3
1 5
1 1
1 5
3 5
I 3
E
E
I 1
E
1 3
1 3
0 0
1 1
1 1