Benchmark · coding
LiveCodeBench
O LiveCodeBench avalia o quão bem os grandes modelos de linguagem resolvem problemas de competitive programming, usando desafios de código coletados continuamente de competições recentes para evitar a contaminação dos dados de treino. A métrica principal é o pass@1: a proporção de problemas resolvidos corretamente na primeira tentativa do modelo.
Saiba mais
- Exemplo
- Um item típico é um problema de código no estilo de competição — por exemplo, dado um vetor de números inteiros, escrever uma função que retorne o comprimento da maior subsequência estritamente crescente — que o modelo precisa resolver gerando código funcional.
- Pontuação
- Cada solução gerada é executada contra os casos de teste do problema; o pass@1 é a fração de problemas em que a primeira submissão do modelo passa em todos os testes.
- Verificação
- Uma solução é aceita automaticamente quando o código gerado passa em todos os casos de teste ocultos e públicos daquele problema; não há avaliação humana nem correspondência exata de texto.
- Por que importa
- Como seus problemas vêm de competições lançadas depois do corte de treino de um modelo, o LiveCodeBench mede uma capacidade real de raciocínio e programação em vez de respostas memorizadas, o que o torna um indicador confiável e resistente à contaminação da habilidade de programar.
Exemplo resolvido
Tarefa
Estilo de programação competitiva (stdin/stdout). Dados n inteiros, conte os pares (i, j) com i < j tais que nums[i] + nums[j] seja par. Entrada: a primeira linha é n, a segunda são n inteiros separados por espaço; imprima a contagem.
Solução
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()
Explicação
Uma soma é par exatamente quando ambas as parcelas têm a mesma paridade, então a resposta é C(evens, 2) + C(odds, 2); contar paridades é O(n). O LiveCodeBench executa o programa do modelo contra testes unitários ocultos e o pontua em pass@1 — correto apenas se todos os testes passarem.