Programação Competitiva

Programação competitiva é um esporte mental que, ao mesmo tempo que aprimora o raciocínio lógico e desenvolve a capacidade de resolver problemas, tem como característica promover a cooperação, trabalho sob pressão e qualidade no código. As soluções são avaliadas não apenas pela correção, mas também pela eficiência. Existem limites de tempo e memória que o programa deve respeitar para ser aceito.

A forma como os desafios são criados fazem com que os participantes estejam sempre envolvidos com temas reais e atuais. Os enunciados em uma prova ou os exercícios em treinamentos procuram tratar de situações críticas inseridas no contexto das empresas e universidades atualmente. Assim, de uma maneira fragmentada, problemas enfrentados por profissionais ou pesquisadores são apresentados aos alunos que procuram resolver sem imaginar que estão vivenciando situações que os especialistas experientes enfrentam nas suas atividades.

As competições utilizam sistemas automatizados (juízes online) que testam as soluções enviadas pelos participantes com diversos casos de teste. Se a solução passar em todos os testes dentro dos limites, ela é considerada correta. A pontuação é baseada principalmente no número de problemas resolvidos e no tempo total gasto para solucionar estes problemas (incluindo penalidade por submissões incorretas). O objetivo é resolver o máximo possível de problemas no menor tempo possível.