Mina Vieja
Ver en PDFDescripción
Las tres pistas coincidían. La maniobra del altímetro apuntaba al suroeste de la sierra; el libro de la casa de empeño daba la fecha; las cajas del aserradero daban el tamaño del bulto. Todo llevaba al mismo lugar: los socavones abandonados de Santa Bárbara.
Renata Quijada bajó con una lámpara, un plano viejo y un problema. La mina se puede ver como una cuadrícula de filas por
columnas donde cada celda trae un número:
- Un
significa roca: por ahí no se pasa.
- Un número
significa túnel, y ese número es el nivel de gas acumulado en esa celda.
Renata se mueve entre celdas de túnel ortogonalmente vecinas (arriba, abajo, izquierda o derecha); no puede caminar en diagonal ni atravesar la roca. Cada movimiento a una celda vecina cuenta como un paso.
Antes de bajar hay que graduar la mascarilla en un nivel entero . Con la mascarilla en
, Renata puede pisar únicamente las celdas de túnel cuyo nivel de gas sea menor o igual que
— eso incluye la bocamina por la que entra y la propia cámara a la que quiere llegar. Una mascarilla más alta protege más, pero es más cara y más pesada, así que a Renata le interesa el
más chico que le sirva.
Hay un segundo problema: el tanque de oxígeno le alcanza para a lo más pasos en total.
La mina tiene bocaminas y Renata puede empezar por la que ella quiera. En algún punto está la cámara donde se escondió el fragmento del meteorito.
Escribe un programa que determine el menor nivel con el que Renata puede llegar de alguna bocamina a la cámara dando a lo más
pasos.
Entrada
La primera línea contiene tres enteros ,
y
: las filas, las columnas y la cantidad máxima de pasos.
Las siguientes líneas contienen
enteros cada una: el renglón
describe los valores
.
La siguiente línea contiene un entero : la cantidad de bocaminas.
Cada una de las siguientes líneas contiene dos enteros
y
: las coordenadas de una bocamina. Las filas se numeran desde
y las columnas también.
La última línea contiene dos enteros y
: las coordenadas de la cámara del meteorito.
Se garantiza que toda bocamina y la cámara son celdas de túnel (su valor no es ). Puede haber bocaminas repetidas.
Salida
Una sola línea con un entero: el menor nivel al que se puede graduar la mascarilla[cite: 4]. Si no hay ningún nivel con el que Renata alcance la cámara en
pasos o menos, imprime
-1.
Ejemplos
Ejemplo 1
Entrada
3 5 10
1 1 1 1 1
9 9 9 9 1
1 1 1 1 1
1
1 1
3 1
Salida
1
Explicación
La bocamina está en la esquina superior izquierda y la cámara en la esquina inferior izquierda. Cruzar directo hacia abajo son sólo pasos, pero obliga a pisar una celda con gas
.
Con pasos de oxígeno le alcanza para rodear por la derecha: baja por la columna
y regresa por el renglón
, pisando puras celdas de gas
. Son exactamente
pasos, así que la mascarilla más barata que sirve es la de nivel
.
Ejemplo 2
Entrada
3 5 2
1 1 1 1 1
9 9 9 9 1
1 1 1 1 1
1
1 1
3 1
Salida
9
Explicación
La misma mina, pero ahora el oxígeno sólo alcanza para pasos. El rodeo barato ya no cabe: la única ruta de
pasos cruza la celda de gas
, así que hay que graduar la mascarilla en
.
Ejemplo 3
Entrada
3 5 1
1 1 1 1 1
9 9 9 9 1
1 1 1 1 1
1
1 1
3 1
Salida
-1
Explicación Con un solo paso de oxígeno no se llega a la cámara por ninguna ruta, sin importar qué tan potente sea la mascarilla.
Límites
y
La entrada llega a tener un millón de números: conviene leerla con scanf, o con cin después de ios_base::sync_with_stdio(false).
Subtareas
| Grupo | Puntos | Restricciones adicionales |
|---|---|---|
| 1 | 15 | |
| 2 | 20 | |
| 3 | 25 | Todo nivel de gas vale |
| 4 | 40 | Sin restricciones adicionales |
Comentarios