Description
Estimados,
Como se indica en el enunciado del L1, parte del puntaje de cada problema es por la correctitud y tiempo de ejecución. Se evaluará cada problema con 3 tamaños diferentes, y en cada tamaño se evaluará la correctitud y tiempo de ejecución como se indica a continuación:
Tamaño pequeño: Cada pregunta se ejecutará con varios inputs pequeños
- Correctitud: Todas las ejecuciones deben ser correctas para obtener este puntaje, en caso contrario, se obtienen 0 puntos.
- Tiempo: El promedio del tiempo de solución de todas las soluciones debe ser menor o igual a 1 segundo (solo si todas fueron correctas) y el tiempo de cada solución debe ser menor a 2 segundos, en caso contrario, se obtienen 0 puntos.
Tamaño mediano: Cada pregunta se ejecutará con varios inputs medianos
- Correctitud: Todas las ejecuciones deben ser correctas para obtener este puntaje, en caso contrario, se obtienen 0 puntos.
- Tiempo: El promedio del tiempo de solución de todas las soluciones debe ser menor o igual a 1 segundo (solo si todas fueron correctas) y el tiempo de cada solución debe ser menor a 2 segundos, en caso contrario, se obtienen 0 puntos.
Tamaño grande: Cada pregunta se ejecutará con varios inputs grandes
- Correctitud: Todas las ejecuciones deben ser correctas para obtener este puntaje, en caso contrario, se obtienen 0 puntos.
- Tiempo: El promedio del tiempo de solución de todas las soluciones debe ser menor o igual a 1 segundo (solo si todas fueron correctas) y el tiempo de cada solución debe ser menor a 2 segundos, en caso contrario, se obtienen 0 puntos.
Problema 1
Pequeño
len(lineas) = 6
len(combinaciones) ≈ 18 # en promedio
Tiempo máximo de la pauta: 0.1 s
Mediano
len(lineas) = 10
len(combinaciones) ≈ 30 # en promedio
Tiempo máximo de la pauta: 0.2 s
Grande
len(lineas) = 20
len(combinaciones) ≈ 60 # en promedio
Tiempo máximo de la pauta: 0.3 s
Ejemplo:
# input
lineas = [[0, 1, 2], [3, 4, 5, 6, 7, 8, 9], [10, 11, 12, 13, 14, 15, 16], [17, 18, 19, 20, 21, 22, 23], [24, 25, 26, 27, 28], [29, 30, 31, 32, 33, 34, 35]]
combinaciones = [(0, 14), (7, 23), (9, 32), (18, 30)]
# output
colores = [0, 0, 1, 1, 0, 2]
Problema 2
Hint: en este problema el largo de la palabra juega un rol importante en el tiempo de ejecución. Piensa para ti mismo cuál es ese rol. Repite el proceso para el número de ocurrencias de una palabra dentro de la sopa de letras.
Pequeño
len(casillas) = 120 # ancho x alto
Tiempo máximo de la pauta: 0.1 s
Mediano
len(casillas) = 12_000 # ancho x alto
Tiempo máximo de la pauta: 0.2 s
Grande
len(casillas) = 180_000 # ancho x alto
Tiempo máximo de la pauta: 0.3 s
Ejemplo:
# input
sopa = ['OGZÑK', 'MNONU', 'NPQZW', 'XONUH', 'HYKSD']
palabra = 'UNO'
# output
ocurrencias = [[(1, 4), (1, 3), (1, 2)], [(3, 3), (3, 2), (3, 1)]]
Problema 3
Pequeño
len(evaluaciones) = 10_000
deadlines ≈ 50 # en promedio
Tiempo máximo de la pauta: 0.1 s
Mediano
len(evaluaciones) = 10_000
deadlines ≈ 250 # en promedio
Tiempo máximo de la pauta: 0.2 s
Grande
len(evaluaciones) = 10_000
deadlines ≈ 750 # en promedio
Tiempo máximo de la pauta: 0.3 s
Ejemplo:
# input
evaluaciones = [('Mark White', 2, 14), ('Wayne Scott', 4, 13), ('Kyle Wright', 6, 8), ('Eloísa Acero Sobrino', 3, 7), ('Osvaldo Badoglio-Chechi', 4, 7), ('Gilberto Juliá', 6, 12), ('Dott. Daria Sagese', 1, 8), ('Sara Alvarez', 5, 8), ('Giovanni Udinesi-Scarpetta', 1, 12), ('Cleto Cantero Paredes', 4, 11)]
## uso una librería que me genera nombres de personas aleatorios. SON ÚNICOS.
# output
nota = 0.7
orden_evaluaciones = ['Giovanni Udinesi-Scarpetta', 'Mark White', 'Cleto Cantero Paredes', 'Wayne Scott', 'Kyle Wright', 'Gilberto Juliá']
Problema 4
Pequeño
len(personas) = 10
len(aristas) ≈ 20 # en promedio
Tiempo máximo de la pauta: 0.1 s
Mediano
len(personas) = 12
len(aristas) ≈ 24 # en promedio
Tiempo máximo de la pauta: 0.2 s
Grande
len(personas) = 15
len(aristas) ≈ 30 # en promedio
Tiempo máximo de la pauta: 0.3 s
Ejemplo 1:
# input
relaciones = [(0, 4), (0, 5), (1, 0), (1, 5), (2, 4), (3, 5), (4, 5)]
# output
posibles_ordenes = [[1, 0, 2, 3, 4, 5], [1, 0, 2, 4, 3, 5], [1, 0, 3, 2, 4, 5], [1, 2, 0, 3, 4, 5], [1, 2, 0, 4, 3, 5], [1, 2, 3, 0, 4, 5], [1, 3, 0, 2, 4, 5], [1, 3, 2, 0, 4, 5], [2, 1, 0, 3, 4, 5], [2, 1, 0, 4, 3, 5], [2, 1, 3, 0, 4, 5], [2, 3, 1, 0, 4, 5], [3, 1, 0, 2, 4, 5], [3, 1, 2, 0, 4, 5], [3, 2, 1, 0, 4, 5]]
Ejemplo 2:
# input
relaciones = [(0, 2), (2, 4), (2, 5), (3, 0), (3, 1), (4, 1), (4, 5), (5, 1), (5, 2)]
# output
personas_con_datos_erroneos = [2, 4, 5]