De acuerdo con https://www.codeeval.com/ranking/, la siguiente función que se utiliza para calcular la puntuación de cada envío es bastante fácil de entender.
def get_submission_score (score, memory_taken, time_taken, category):
“” ”
@param score: la puntuación que reciben los casos de prueba
@param memory_taken: memoria tomada por envío
@param time_taken: tiempo empleado por envío
Categoría @param: Fácil (1) / Moderado (2) / Difícil (3)
“” ”
total_max = {
1:35, # máx. 35 puntos por desafío fácil
2: 65, # max 65 puntos por desafío moderado
3: 100 # máx. 100 puntos para el desafío difícil
}
max_memory = 20 * 1024 * 1024 # 20 MB
max_time = 10 * 1000 # 10 segundos
- ¿Es válido este intento recursivo de bubbleort o se puede optimizar?
- ¿Cuál es la mejor estructura de datos para un solucionador de ahorcado?
- Dado N monedas para dos jugadores que juegan un juego. Cada jugador puede elegir 1 o 2 monedas en un turno. El jugador que recoge las últimas monedas gana. Si juegan de manera óptima, ¿qué jugador ganará el juego?
- ¿Cómo se puede comenzar a resolver problemas de programación dinámica?
- Cómo aprender estructuras de datos y algoritmos para empezar
# si el envío tarda más de 10 segundos
# o usa más de 20 MB de memoria
# la puntuación es 0
si memory_taken> max_memory o time_taken> max_time:
volver 0
max_total_score = total_max [categoría]
memory_factor = 1 – memory_taken / max_memory
time_factor = 1 – time_taken / max_time
factor = (memory_factor + time_factor) / 2
puntaje de retorno * max_total_score * factor / 100