Benchmark · coding
LiveCodeBench
LiveCodeBench évalue la capacité des grands modèles de langage à résoudre des problèmes de competitive programming, à partir de défis de code collectés en continu lors de concours récents afin d'éviter la contamination par les données d'entraînement. La métrique principale est le pass@1 : la proportion de problèmes résolus correctement dès la première tentative du modèle.
En savoir plus
- Exemple
- Un élément typique est un problème de code de style concours — par exemple, étant donné un tableau d'entiers, écrire une fonction qui renvoie la longueur de la plus longue sous-suite strictement croissante — que le modèle doit résoudre en générant du code fonctionnel.
- Notation
- Chaque solution générée est exécutée sur les cas de test du problème ; le pass@1 est la fraction de problèmes pour lesquels la première soumission du modèle passe tous les tests.
- Vérification
- Une solution est acceptée automatiquement lorsque le code généré passe tous les cas de test cachés et publics du problème ; il n'y a ni jugement humain ni correspondance exacte de texte.
- Pourquoi c'est important
- Comme ses problèmes proviennent de concours publiés après la date limite d'entraînement d'un modèle, LiveCodeBench mesure une véritable capacité de raisonnement et de programmation plutôt que des réponses mémorisées, ce qui en fait un indicateur fiable et résistant à la contamination des compétences en code.
Exemple résolu
Tâche
Style de programmation compétitive (stdin/stdout). Étant donné n entiers, comptez les paires (i, j) avec i < j telles que nums[i] + nums[j] soit pair. Entrée : la première ligne est n, la seconde contient n entiers séparés par des espaces ; affichez le compte.
Solution
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()
Explication
Une somme est paire exactement quand les deux termes ont la même parité, donc la réponse est C(evens, 2) + C(odds, 2) ; compter les parités se fait en O(n). LiveCodeBench exécute le programme du modèle sur des tests unitaires cachés et le note en pass@1 — correct seulement si tous les tests passent.