EXAMEN DE LA PRÁCTICA DE PRO2 - JUEGO DE PRUEBAS PÚBLICO

-------------------------------------------------------------------------------
1. COMPOSICIÓN DE LOS JUEGOS DE PRUEBAS
-------------------------------------------------------------------------------

En primer lugar se lee el número de nodos de la cuenca (N) y la estructura de
la cuenca, en preorden.

A continuación, se aplican las operaciones abajo comentadas.  Cada operación se
identifica mediante un código numérico, que será -1, -3 o -5.  Se garantiza que
no aparecerán códigos inexistentes. Cada operación comenzará con su código y a
éste le seguirán los datos de la misma, si es que necesita alguno.

-------------------------------------------------------------------------------
2. ENTRADA Y SALIDA DE LAS OPERACIONES
-------------------------------------------------------------------------------

Seguidamente detallamos los elementos propios de las diferentes operaciones.
Se garantiza que los valores proporcionados serán válidos según los convenios
expuestos en el enunciado y en este documento.  Para ver ejemplos concretos de
la sintaxis de sus entradas y salidas, id al apartado 3.


* APLICAR UN EVENTO

Identificador: -1

Entrada: los valores c_max y g_max del tipo de depuradora a usar, la fecha del
evento, el número de tuplas que contiene y dichas tuplas. Cada tupla consiste
en un número de nodo, un indicador de presencia (1) o ausencia (0) de
depuradora, un caudal y un grado.

Salida: el caudal y el grado que han quedado en la desembocadura tras aplicar
el evento.

Efectos de la operación sobre el sistema: se guardan los datos necesarios para
poder hacer luego consultas sobre los resultados del evento.


* CONSULTAR GRADO MÁXIMO ANTERIOR A UNA FECHA

Identificador: -3

Entrada: una fecha

Salida: se escriben los datos del evento de grado máximo que se ha dado en las
fechas anteriores a la indicada: la fecha en la que se ha producido, el caudal
correspondiente y el grado. Si no se ha producido ningún evento antes de dicha
fecha se escribe 0 0 0.

Efectos de la operación sobre el sistema: NO TIENE EFECTOS.


* SALIR DEL PROGRAMA

Identificador: -5

-------------------------------------------------------------------------------
3. JUEGO DE PRUEBAS PÚBLICO
-------------------------------------------------------------------------------

Entrada comentada:

-------------------------------------------------------------------------------

7                                               //Nodos de la cuenca (N)
6 5 3 1 0 0 2 0 0 4 0 0 7 0 0                   //Estructura de la cuenca

-1                                              //Operación aplicar evento
40 200                                          //Datos tipo depuradora
20101103                                        //Fecha evento
5                                               //Número de tuplas <k d c g>
1 0 70 500                                      //que aparecen a continuación
2 0 20 20
4 0 40 150
7 0 30 1000
3 1 0 0

-1                                              //Operación aplicar evento
40 20                                           //Datos tipo depuradora
20101104                                        //Fecha evento
4                                               //Número de tuplas <k d c g>
1 0 70 500                                      //que aparecen a continuación
2 0 20 20
4 0 40 150
7 0 20 1000

-1                                              //Operación aplicar evento
80 200                                          //Datos tipo depuradora
20101105                                        //Fecha evento
5                                               //Número de tuplas <k d c g>
1 0 70 500                                      //que aparecen a continuación
2 0 20 20
4 0 40 150
7 0 20 1000
6 1 0 0

-3 20101105                                     //Operación grado máximo fecha
-3 20101102                                     //Operación grado máximo fecha

-5                                              //Salida del programa


-------------------------------------------------------------------------------
Salida comentada:

-------------------------------------------------------------------------------

160 395                                         //Resultado del evento 20101103

150 408                                         //Resultado del evento 20101104

150 301                                         //Resultado del evento 20111105

Max grado fecha 20101105                        //Grado máximo
20101104 150 408

Max grado fecha 20101102                        //Grado máximo
0 0 0

Al final puede haber una línea en blanco o más.

-------------------------------------------------------------------------------

Entrada sin comentar: cortadla y pegadla en un fichero para usarla como entrada
para vuestro programa mediante la redirección <. La entrada se ha de poder
procesar si donde hay un blanco, tabulador o salto de línea se ponen dos o más
(por ejemplo, para separar las distintas acciones) o si donde hay dos o más
saltos de línea sólo se pone uno.

-------------------------------------------------------------------------------

7
6 5 3 1 0 0 2 0 0 4 0 0 7 0

-1
40 200
20101103
5
1 0 70 500
2 0 20 20
4 0 40 150
7 0 30 1000
3 1 0 0

-1
40 20
20101104
4
1 0 70 500
2 0 20 20
4 0 40 150
7 0 20 1000

-1
80 200
20101105
5
1 0 70 500
2 0 20 20
4 0 40 150
7 0 20 1000
6 1 0 0

-3 20101105
-3 20101102

-5

-------------------------------------------------------------------------------

Salida sin comentar: vuestro resultado ha de coincidir exactamente con éste
(probándolo con el comando diff -Bb de Linux), salvo las líneas en blanco del
principio y del final, que pueden variar.

-------------------------------------------------------------------------------

160 395

150 408

150 301

Max grado fecha 20101105
20101104 150 408

Max grado fecha 20101102
0 0 0

------------------------------------------------------------------------------

