Benchmark · coding
LiveCodeBench
LiveCodeBench evalúa qué tan bien los grandes modelos de lenguaje resuelven problemas de competitive programming, usando desafíos de código recopilados de forma continua de concursos recientes para evitar la contaminación de los datos de entrenamiento. La métrica principal es pass@1: la proporción de problemas resueltos correctamente en el primer intento del modelo.
Leer más
- Ejemplo
- Un elemento típico es un problema de código estilo concurso; por ejemplo, dada una lista de números enteros, escribir una función que devuelva la longitud de la subsecuencia estrictamente creciente más larga, que el modelo debe resolver generando código funcional.
- Puntuación
- Cada solución generada se ejecuta contra los casos de prueba del problema; pass@1 es la fracción de problemas en los que el primer envío del modelo pasa todas las pruebas.
- Verificación
- Una solución se acepta automáticamente cuando el código generado pasa todos los casos de prueba ocultos y públicos de ese problema; no hay evaluación humana ni coincidencia exacta de texto.
- Por qué importa
- Como sus problemas provienen de concursos publicados después de la fecha de corte del entrenamiento de un modelo, LiveCodeBench mide una capacidad real de razonamiento y programación en lugar de respuestas memorizadas, lo que lo convierte en un indicador confiable y resistente a la contaminación de la habilidad para programar.
Ejemplo resuelto
Tarea
Estilo de programación competitiva (stdin/stdout). Dados n enteros, cuenta los pares (i, j) con i < j tales que nums[i] + nums[j] sea par. Entrada: la primera línea es n, la segunda son n enteros separados por espacios; imprime el conteo.
Solución
import sys
def main():
data = sys.stdin.read().split()
n = int(data[0])
nums = list(map(int, data[1:1 + n]))
odd = sum(x % 2 for x in nums)
even = n - odd
print(odd * (odd - 1) // 2 + even * (even - 1) // 2)
main()
Explicación
Una suma es par exactamente cuando ambos sumandos tienen la misma paridad, así que la respuesta es C(evens, 2) + C(odds, 2); contar paridades es O(n). LiveCodeBench ejecuta el programa del modelo contra pruebas unitarias ocultas y lo puntúa con pass@1: correcto solo si pasan todas las pruebas.