EXAMEN DE LA PRACTICA DE PRO2 - JUEGO DE PRUEBAS PBLICO


-------------------------------------------------------------------------------
1. COMPOSICIN DE LOS JUEGOS DE PRUEBAS
-------------------------------------------------------------------------------

En primer lugar se lee el nmero N que determina la cantidad de poblados y
motos. 

Luego se introduce la estructura del recorrido de la carrera, en preorden,
leyendo para cada nodo (poblados y gasolineras) en primer lugar la distancia
(en km) y en segundo lugar la gasolina disponible (en cl). Los poblados no
tendrn gasolina (el valor correspondiente ser siempre 0), ya que las motos
comienzan las carreras con el depsito lleno. Sabremos que leemos un poblado
porque los datos de sus sucesores son -1 -1.

Tras esto se leen los datos de las 2^N motos.

Los identificadores de las motos deben asignarse correlativamente segn el
orden de lectura, es decir, la primera moto que se lea tendr id 1, la segunda
id 2, etc. Para cada moto se leer su velocidad (en cm/s), la capacidad de su
depsito (en cl) y su consumo (en cl cada 100 km).

Todos los datos del recorrido y de las motos sern enteros mayores o iguales
que 0, salvo la velocidad, que siempre ser mayor que 0.

A partir de aqu se aplican las operaciones abajo comentadas.  Cada operacin
se identifica mediante un cdigo numrico, que ser un entero negativo entre -1
y -4. Cada operacin comenzar con su cdigo y a ste le seguirn los datos de
la misma, si es que necesita alguno. Se garantiza que no aparecern cdigos
inexistentes.

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

Seguidamente detallamos los elementos propios de las diferentes operaciones.
Se garantiza que los valores proporcionados sern vlidos segn 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.

* CARRERA INDIVIDUAL

Identificador: -1

Entrada: un entero entre 1 y 2^N, que es la moto que participa en la carrera
individual y otro entero entre 1 y 2^N, no necesariamente igual que
el anterior, que es el pueblo desde donde sale.

Salida: ha de imprimir el identificador de la moto y el del poblado. Adems, si
la moto no llega a terminar la carrera, escribe un 0. Si la moto consigue
terminar, escribe el tiempo que ha tardado, la gasolina gastada y la gasolina
que queda en el depsito.

Efectos de la operacin sobre el sistema: se actualiza el registro de rcords
si es necesario.

* SUSTITUIR MOTOS

Identificador: -2

Entrada: los datos de las nuevas 2^N motos. El nmero N no cambia.

Salida: NO TIENE SALIDA.

Efectos de la operacin sobre el sistema: cambia los datos antiguos de las
motos por los nuevos.


* CONSULTAR RECORD

Identificador: -3

Entrada: un entero entre 1 y 2^N, que es la moto participante de la cual
queremos consultar el rcord.

Salida: si la moto no ha llegado a terminar ninguna carrera, imprime su
identificador y luego un 0. Si la moto ha terminado alguna carrera, escribe su
identificador y los resultados de su mejor carrera: el poblado desde que ha
salido, el tiempo que ha tardado y la gasolina gastada.

Efectos de la operacin sobre el sistema: NO TIENE EFECTOS.

* SALIR DEL PROGRAMA

Identificador: -4


-------------------------------------------------------------------------------
3. JUEGO DE PRUEBAS PBLICO
-------------------------------------------------------------------------------

Entrada comentada:

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

3                                               // N (8 poblados y motos)

1 50                                            // Estructura del Recorrido
5 110                                           // Distancia y gasolina
4 100
1 0
-1 -1
-1 -1
2 0
-1 -1
-1 -1
3 200
1 0
-1 -1
-1 -1
2 0
-1 -1
-1 -1
2 210
1 13
2 0
-1 -1
-1 -1
2 0
-1 -1
-1 -1
3 145
1 0
-1 -1
-1 -1
1 0
-1 -1
-1 -1

50 12 100                                       // Datos de las motos
100 4 100                                       // Velocidad Depsito Consumo
170 12 150
400 14 90
70 12 50
20 12 120
30 20 300
210 10 100



-1 1 1                                   // Carrera individual moto 1 pueblo 1
-1 1 2                                   // Carrera individual moto 1 pueblo 2
-1 4 6                                   // etc
-1 2 3 

-3 1                                            // Rcord moto 1
-3 3                                            // Rcord moto 3
-3 2                                            // etc
-3 1

-2                                              // Cambio de motos
150 12 200
100 13 50
170 12 100
400 14 100
70 12 100
20 12 70
30 20 400
210 10 180


-1 2 1                                          // Ms carreras y consultas  
-1 5 5
-3 5  
-3 4
-3 1                                         
-1 1 6
-3 1
 
-4                                             

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

Individual                     // Resultado de la moto 1 en el poblado 1 
1 1 22000 11 11                // id moto, id poblado, tiempo, gasto, depsito
 
Individual
1 2 24000 12 11                // Resultado de la moto 1 en el poblado 2
 
Individual
4 6 1500 2 14                  // etc
 
Individual
2 3 0

Record                          // Mejor resultado de la moto 1
1 1 22000 11                    // id moto, id poblado, tiempo, gasto

Record                          // Mejor resultado de la moto 3
3 0                             // (no ha acabado ninguna carrera)

Record
2 0 

Record
1 1 22000 11

Individual
2 1 11000 4 13

Individual
5 5 8570 6 11

Record 
5 5 8570 6

Record
4 6 1500 2

Record
1 1 22000 11

Individual
1 6 3998 12 10
 
Record
1 6 3998 12

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



Al final puede haber una lnea en blanco o ms.

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

Entrada sin comentar: cortadla y pegadla en un fichero para usarla como entrada
para vuestro programa mediante la redireccin <. La entrada se ha de poder
procesar si donde hay un blanco, tabulador o salto de lnea se ponen dos o ms
(por ejemplo, para separar las distintas acciones) o si donde hay dos o ms
saltos de lnea slo se pone uno.

ver fichero entrada.txt

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

Salida sin comentar: vuestro resultado ha de coincidir exactamente con ste
(probndolo con el comando diff -Bb de Linux), salvo las lneas en blanco del
principio y del final, que pueden variar.

ver fichero salida.txt
------------------------------------------------------------------------------
