EXAMEN DE LA PRCTICA DE PRO2 Cuatrimestre otoo 2012 - JUEGO DE PRUEBAS PBLICO

Esquema del documento:

0. Observaciones previas.
1. Composicin de los juegos de pruebas.
2. Entrada y salida de las operaciones.
3. Juego de pruebas pblico.

-----------------------------------------------------------------------------
0. OBSERVACIONES PREVIAS
-----------------------------------------------------------------------------

* Para una ejecucin, el nmero de especies (N, entero mayor que 0) se lee como
  dato de inicializacin y no cambia a lo largo de la ejecucin. En las
  migraciones, luchas entre especies, nacimientos de individuos y cambios de
  preferencias de presas no se crean ni se eliminan especies.

* Para una ejecucin, el nmero de especies carnvoras (C, entero mayor que 0)
  se lee como dato de inicializacin y no cambia a lo largo de la
  ejecucin. Siempre ser menor o igual que N.

* Los identificadores de especie son enteros mayores que 0 y menores o iguales
  que N y se deducen por el contexto de la entrada.

* En general, los datos de operaciones diferentes se leern en lneas
  diferentes y los resultados de operaciones diferentes se escribirn en lneas
  diferentes.

* Los ficheros de entrada de los juegos de pruebas tendrn lneas de menos de
  80 caracteres. Si necesitamos datos muy grandes para una misma operacin, los
  dividiremos en varias lneas.

* No es necesario comprobar si los datos que se van a leer son consistentes,
  por ejemplo, si se dice que hay N especies, est garantizado que se podrn
  leer, todos los identificadores de especie estarn entre 1 y N y todas sus
  caractersticas sern vlidas. Anlogamente para los identificadores de
  regiones, etc. Tambin se garantiza que los datos de las migraciones y las
  dems operaciones cumplen sus correspondientes precondiciones.

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

La primera accin es leer el nmero N de especies. A continuacin se lee el
nmero C de especies carnvoras. Despus se leen los datos de cada especie por
orden de identificador correlativo a partir de la primera especie. Por ltimo,
se lee el orden de prioridad de alimentacin de las especies carnvoras.

A continuacin se lee el nmero de regiones R, seguido de su estructura
geogrfica.  sta sigue el formato estndar de lectura de un rbol en preorden
que se ha visto en la sesiones de laboratorio, con una marca igual a 0. Despus
se leen los datos de cada regin por orden de identificador correlativo a
partir de la primera regin. Para cada regin se lee el nmero de individuos de
cada especie orden de identificador correlativo a partir de la primera especie.

Una vez el sistema ha sido inicializado, pasamos a aplicar las distintas
operaciones, cuya estructura viene especificada en la siguiente seccin.

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

* LUCHA GLOBAL

Identificacin: -1

Datos: Ninguno.

Salida: Ninguna.

Efectos sobre el sistema: se actualizan las poblaciones de todas las especies
de todas las regiones, es decir, se eliminan los animales que han muerto, ya
sea por no llegar a comer su mnimo o por haber sido devorados.

* MIGRACIN

Identificacin: -2

Datos: Un entero que representa la regin de origen, un entero que representa 
el identificador de la especie, un entero que representa el nmero de individuos 
que migran y un entero que representa el factor g de la migracin.

Salida: Ninguna.

Efectos sobre el sistema: Se actualizan las poblaciones de la especie que
emigra, eliminando individuos de la regin de partida y aadiendo individuos en
las regiones que hayan recibido animales.

* NACIMIENTOS / REPOBLACIONES

Identificacin: -3

Datos: Un entero mayor que 0 que representa el nmero de individuos nuevos, un
entero que representa la especie de dichos individuos y un entero que
representa la regin a la que se aaden.

Salida: Ninguna.

Efectos sobre el sistema: Se actualiza la poblacin de la especie en la regin,
aadiendo el nmero de individuos ledos.

* CAMBIAR PREFERENCIAS ALIMENTARIAS DE UN CARNVORO

Identificacin: -4

Datos: Un entero que representa el identificador de una especie carnvora y
el identificador de la especie que puede comer.

Salida: Ninguna.

Efectos sobre el sistema: se reemplazan las preferencias alimentarias de la
especie.

* ESCRIBIR REGIONES

Identificacin: -5

Datos: Ninguno.

Salida: R lneas (una para cada regin), cada una de las cuales tiene N nmeros
(uno para cada especie). El j-simo nmero de la lnea i-sima indica cuantos
individuos hay en la regin i de la especie j.  Despus de las R lneas se
escribe un salto de lnea.

Efectos sobre el sistema: Ninguno.

* FINALIZAR PROGRAMA

Identificacin: -6

Datos: Ninguno

Salida: Ninguna

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

Entrada comentada:
------------------
4                        //N : nmero de especies
2                        //C : nmero de carnivoros

10 20 2                  //Especie 1 (carnvoro)
                            //valor alimenticio (10)
                            //caloras mnimas (20)
                            //presa (2)

10 0                      //Especie 2 (herbvoro)
                            //valor alimenticio (10)
                            //caloras mnimas (0)

10 10 4                   //Especie 3
10 0                      //Especie 4

1 3                       //Prioridad al alimentarse: Primero 1, segundo 3.

4                         //R : nmero de regiones

1 2 0 0 3 4 0 0 0         //Estructura geogrfica

1 1 1 0                   //Regin 1
                            //Individuos de la especie 1 (1)
                            //Individuos de la especie 2 (1)
                            //Individuos de la especie 3 (1)
                            //Individuos de la especie 4 (0)

1 2 1 1                   //Regin 2
1 3 1 2                   //Regin 3
100 200 0 0               //Regin 4

-5                        //Mostrar poblaciones de todas las regiones
                          //especie a especie

-1                        //Lucha global

-5

-2 4 1 50 20              //Emigracin desde la regin 4
                          //de la especie 1: 50 individuos
                          //con factor g = 20

-5

-3 100 3 3                //100 nuevos individuos de la especie 3
                          //en la regin 3

-5

-2 3 3 50 40

-5

-3 50 2 1

-5

-4 1 4                     //Cambio de preferencias: La especie de carnvoro 1
                           //pasa a comer presas de la especie 4

-4 3 2

-1

-5

-6


Salida comentada:
-----------------
1 1 1 0                    //Regin 1
                             //Individuos de la especie 1 (1)
                             //Individuos de la especie 2 (1)
                             //Individuos de la especie 3 (1)
                             //Individuos de la especie 4 (0)

1 2 1 1                    //Regin 2
1 3 1 2                    //Regin 3
100 200 0 0                //Regin 4

0 0 0 0                    //Se ha ejecutado una lucha global
1 0 1 0			   
1 1 1 1			   
100 0 0 0		   
			   
25 0 0 0                   //Se ha ejecutado una migracin
1 0 1 0			   
26 1 1 1		   
50 0 0 0		   
			   
25 0 0 0                   //Se ha ejecutado nacimientos/repoblacin
1 0 1 0			   
26 1 101 1		   
50 0 0 0		   
			   
25 0 50 0                  //Se ha ejecutado una lucha global
1 0 1 0			   
26 1 51 1		   
50 0 0 0		   
			   
25 50 50 0                 //Se ha ejecutado nacimientos/repoblacin
1 0 1 0			   
26 1 51 1		   
50 0 0 0		   
			   
0 0 50 0                   //Se han ejecutado cambios de preferencia y una migracin
0 0 0 0
0 0 1 0
0 0 0 0


Al final puede haber una lnea en blanco o ms.
-------------------------------------------------------------------------------

Entrada sin comentar: cortadla y pegadla en un fichero para usarla como entrada
a vuestro programa mediante la redireccin <.

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

4
2

10 20 2
10 0
10 10 4
10 0

1 3

4

1 2 0 0 3 4 0 0 0

1 1 1 0
1 2 1 1
1 3 1 2
100 200 0 0

-5 

-1 

-5

-2 4 1 50 20

-5

-3 100 3 3

-5

-2 3 3 50 40

-5

-3 50 2 1

-5

-4 1 4

-4 3 2

-1

-5

-6

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

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

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

1 1 1 0
1 2 1 1
1 3 1 2
100 200 0 0

0 0 0 0
1 0 1 0
1 1 1 1
100 0 0 0

25 0 0 0
1 0 1 0
26 1 1 1
50 0 0 0

25 0 0 0
1 0 1 0
26 1 101 1
50 0 0 0

25 0 50 0
1 0 1 0
26 1 51 1
50 0 0 0

25 50 50 0
1 0 1 0
26 1 51 1
50 0 0 0

0 0 50 0
0 0 0 0
0 0 1 0
0 0 0 0

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

