contribución de lautaro lasorsa - oia · 2020. 1. 5. · contribución de lautaro lasorsa...

3
Nivel 3 Problema 2 laboratorio Certamen Nacional OIA 2019 Laboratorio lleno de perros Contribución de Lautaro Lasorsa Descripción del problema En un congreso reciente, se usó el laboratorio de informática para realizar actividades. Había muchos perros mero- deando. Los perros fueron entrando al laboratorio y obstruyendo el paso. Más específicamente, el laboratorio puede representarse como una grilla de NxM baldosas. Cada baldosa puede: Estar libre, de modo que se puede transitar sobre ella. Tener un escritorio encima, de modo que no se puede transitar por allí. El laboratorio tiene una única entrada, que puede abarcar varias baldosas ale- dañas a la entrada. Una baldosa libre es accesible si existe un camino que pasa exclusivamente por baldosas libres y que une la entrada con dicha baldosa. Es posible moverse desde una baldosa hacia otra cuando ambas comparten un lado. Los escritorios están ubicados de forma tal que cuando no hay perros, todas las baldosas libres son accesibles. Se sabe que han ingresado P perros, todos en momentos distintos: Cuando un perro entra, se recues- ta sobre una baldosa libre, blo- queándola de modo que ya no se puede transitar por allí. Como está muy cómodo allí, permanecerá inde- finidamente en ese lugar. Los perros son ágiles y además se permiten el paso mutualmente, por lo que un perro podrá recostarse en una baldosa libre incluso si esta no es accesible para las personas. Debes escribir una función que dado el mapa del laboratorio y los ingresos perru- nos, calcule cuántas baldosas accesibles había luego de entrar cada perro. Detalles de implementación Se debe implementar la funcion laboratorio(mapa, perrosF, perrosC). Sus parámetros son: mapa es un arreglo de N cadenas de caracteres de longitud M , tal que el caracter en la posición mapa[i][j] describe la baldosa en fila i y colum- na j (0 i N - 1, 0 j M - 1). Su valor será : . si es una baldosa libre. # si hay un escritorio. E si es una baldosa aledaña a la entrada. Todas las baldosas E están en el borde del laboratorio, y son vecinas entre sí. Las bal- dosas E son, a su vez, baldosas libres. perrosF, perrosC son arreglos de P enteros, de modo que perrosF[i] y perrosC[i] indican respectivamente la fila y columna en la cual se ubicará el i -ésimo perro en orden de ingreso (0 i P - 1). La función debe retornar un arreglo de P enteros, que contenga las cantidades de baldosas libres accesibles luego de que ingresara cada perro, en orden de ingreso. hoja 1 de 3

Upload: others

Post on 31-Jan-2021

7 views

Category:

Documents


0 download

TRANSCRIPT

  • Nivel 3 Problema 2 laboratorio Certamen Nacional OIA 2019

    Laboratorio lleno de perrosContribución de Lautaro Lasorsa

    Descripción del problema

    En un congreso reciente, se usó ellaboratorio de informática para realizaractividades. Había muchos perros mero-deando. Los perros fueron entrando allaboratorio y obstruyendo el paso.

    Más específicamente, el laboratoriopuede representarse como una grilla deNxM baldosas. Cada baldosa puede:

    Estar libre, de modo que se puedetransitar sobre ella.

    Tener un escritorio encima, de modoque no se puede transitar por allí.

    El laboratorio tiene una única entrada,que puede abarcar varias baldosas ale-dañas a la entrada. Una baldosa libre esaccesible si existe un camino que pasaexclusivamente por baldosas libres y queune la entrada con dicha baldosa. Esposible moverse desde una baldosa haciaotra cuando ambas comparten un lado.

    Los escritorios están ubicados de formatal que cuando no hay perros, todas lasbaldosas libres son accesibles. Se sabeque han ingresado P perros, todos enmomentos distintos:

    Cuando un perro entra, se recues-ta sobre una baldosa libre, blo-queándola de modo que ya no sepuede transitar por allí. Como estámuy cómodo allí, permanecerá inde-finidamente en ese lugar.

    Los perros son ágiles y además sepermiten el paso mutualmente, porlo que un perro podrá recostarse enuna baldosa libre incluso si esta noes accesible para las personas.

    Debes escribir una función que dado elmapa del laboratorio y los ingresos perru-nos, calcule cuántas baldosas accesibleshabía luego de entrar cada perro.

    Detalles de implementación

    Se debe implementar la funcionlaboratorio(mapa, perrosF, perrosC).Sus parámetros son:

    mapa es un arreglo de N cadenasde caracteres de longitud M, tal queel caracter en la posición mapa[i][j]describe la baldosa en fila i y colum-na j (0 ≤ i ≤ N − 1, 0 ≤ j ≤ M − 1).Su valor será :

    • . si es una baldosa libre.

    • # si hay un escritorio.

    • E si es una baldosa aledaña ala entrada. Todas las baldosas Eestán en el borde del laboratorio,y son vecinas entre sí. Las bal-dosas E son, a su vez, baldosaslibres.

    perrosF, perrosC son arreglos de Penteros, de modo que perrosF[i] yperrosC[i] indican respectivamentela fila y columna en la cual se ubicaráel i-ésimo perro en orden de ingreso(0 ≤ i ≤ P − 1).

    La función debe retornar un arreglo deP enteros, que contenga las cantidadesde baldosas libres accesibles luego deque ingresara cada perro, en orden deingreso.

    hoja 1 de 3

  • Nivel 3 Problema 2 laboratorio Certamen Nacional OIA 2019

    Evaluador local

    El evaluador local lee de la entradaestándar:

    Una línea con los enteros N, M y P

    N líneas de M caracteres cada una,sin espacios, que describen el mapadel laboratorio.

    Luego P líneas, cada una con dosenteros. La i-ésima de estas líneas(contando desde 0) contiene los en-teros perrosF[i] y perrosC[i].

    Escribe a la salida estándar una lí-nea el arreglo retornado por la funciónlaboratorio.

    Cotas

    1 ≤ N × M ≤ 200.000

    1 ≤ P ≤ 100.000

    0 ≤ perrosF [i ] ≤ N − 1

    0 ≤ perrosC[i ] ≤ M − 1

    Ejemplos

    Si el evaluador local recibe la siguienteentrada:

    4 4 5...##...E..#E..#1 30 00 12 03 0

    Una implementación correcta deberádevolver:

    11 10 9 8 0

    Si en cambio recibe:

    1 10 5#....E...#0 20 10 50 60 7

    Se debe devolver:

    6 6 0 0 0

    Y si en cambio se recibe :

    10 10 6E..#...#..E..#...#..E..#...#..E..##.##.#E.........E..##.##.#E..#...#..E..#...#..E..#...#..E..#...#..3 55 53 85 84 74 3

    Se debe devolver:

    66 53 46 37 34 30

    hoja 2 de 3

  • Nivel 3 Problema 2 laboratorio Certamen Nacional OIA 2019

    A continuación se muestra la situaciónluego de ingresado el primer perro:

    Luego de ingresar el tercer perro que-daría:

    Y la situación final es:

    Subtareas

    1. N = 1, y hay exactamente una bal-dosa aledaña a la entrada (8 puntos)

    2. N = 1 (12 puntos)

    3. P = 1 (15 puntos)

    4. N × M × P ≤ 100.000 (25 puntos)

    5. Sin más restricciones (40 puntos)

    hoja 3 de 3