Juego de Dados


Submit solution

Points: 100 (partial)
Time limit: 2.0s
Memory limit: 64M

Author:
Problem type
Allowed languages
C, C++, Java, Pascal

Un tablero de N×M casillas se ha enumerado consecutivamente con los números del 1 al N×M comenzando por la última fila llenando las casillas de izquierda a derecha, luego la penúltima fila de derecha a izquierda y así alternadamente hasta la primera fila como se muestra en la figura.

Descripcion

Algunas casillas tienen pase directo a otras casillas, bien en avance o en retroceso (se indica con una flecha). Estos pases sólo son válidos cuando se termina de contar en una casilla que contenga enlace directo con otra casilla.

Un jugador con su ficha se va moviendo por las casillas (en el orden en que fueron enumeradas) a medida que lanza un dado y avanza tantas casillas como puntos salen. Las caras del dado están enumeradas del 1 al 6. El objetivo del juego es llegar a la casilla meta, que es la casilla con número N×M. Determine la menor cantidad posible de tiros de dado, con los cuales un jugador puede alcanzar la casilla meta.

Entrada

La primera línea de la entrada contiene tres números enteros N, M (4 \leq N, M \leq 1000) y P (1 \leq P \leq 400) separados por un espacio. Ellos indican el número de filas, el número de columnas y la cantidad de pasos o atajos del tablero respectivamente. Se garantiza para todos los casos de prueba que (N×M \leq 10^5). Las próximas P líneas tienen los enlaces de las casillas que tienen pase o atajos directo a otra, uno por línea. Primero está el número de la casilla y luego, separado por espacio, el número de la casilla a donde se dirigirá la flecha.

Salida

La salida deberá contener en una línea la cantidad de veces que habrá que lanzar el dado como mínimo para alcanzar la casilla meta.

Ejemplo de Entrada

5 5 5
3 12
13 1
17 7
19 24
22 11

Ejemplo de Salida

4

Explicación

El mínimo de lanzamientos requeridos es 4. Una secuencia de cuatro tiros del dado con los cuales se alcanza la meta es: 3, 6, 1, 1. En el primer lanzamiento salió la cara 3, entonces movemos la ficha por las casillas 1, 2 y 3. Al llegar a la casilla 3 esta tiene un enlace directo hasta la casilla 12 por lo que automáticamente la ficha se mueve hasta dicha casilla. En el segundo tiro salió un 6, por tanto nos movemos por las casillas desde la 13 hasta la 18. En el tercer lance salió un 1 y nos movemos hasta la casilla 19, esta tiene un pase directo hasta la casilla 24. En el último lance salió un 1 y con esto llegamos a la casilla final, la 25.


Comments

There are no comments at the moment.