Objetivo
Implementa una función que valide solicitudes de candidatos, elimine duplicados y devuelva los perfiles mejor clasificados.
Entrada
Recibirás una lista de registros con name, score, experience e english, además de un entero topN que limita el resultado.
Reglas
Descarta nombres vacíos, valores no numéricos, experiencia negativa, niveles de inglés desconocidos y scores menores a 70. Los nombres se comparan sin distinguir mayúsculas.
Fórmula
puntaje = score × 0.70 + min(experience, 5) × 4 + inglés. Inglés: A1=0, A2=2, B1=4, B2=6, C1=8 y C2=10.
Ordenamiento
Ordena por puntaje final descendente, luego por score descendente y finalmente por nombre ascendente. En duplicados conserva el registro con mayor puntaje final.
Salida esperada
Devuelve como máximo topN nombres, en el orden calculado. Si topN es 0 o no hay registros válidos, devuelve una lista vacía.
Casos inválidos
Tu solución se probará con listas vacías, duplicados, empates, campos faltantes, topN fuera de rango y límites de experiencia.
Restricciones
No uses servicios externos ni acceso a red. La solución debe ejecutarse dentro de los límites de 5 segundos y 256 MB.
Prueba de práctica · sin puntuación
Este ejemplo sirve para verificar el formato; no cuenta para el ranking.
Entrada
2
Ana|85|3|B2
Luis|92|1|C1Salida
Ana,Luis