Maratona de Programação
O que é Computação Competitiva?
A Computação Competitiva é um esporte mental onde os participantes resolvem problemas algorítmicos complexos dentro de um limite de tempo. A competição mais tradicional de nível superior é a Maratona de Programação da SBC, que faz parte da etapa regional sul-americana do ICPC (International Collegiate Programming Contest), o mundial da categoria.
Além dela, existem a OBI (Olimpíada Brasileira de Informática), focada nos ensinos fundamental e médio e início da graduação, e competições regionais importantes como a Maratona Mineira de Programação, que fomentam o cenário local.
Por que participar? (Mercado de Trabalho)
Este tipo de prática não serve apenas para competições. A capacidade de resolver problemas complexos de forma eficiente e rápida é uma competência altamente valorizada por grandes empresas de tecnologia (Big Techs como Google, Meta, Amazon), que utilizam desafios similares em seus processos seletivos (coding interviews).
Como Funciona?
Cada equipe participante é formada por 3 competidores, um técnico e um reserva. Para cada equipe, são disponibilizados um único computador e um (eventualmente 3) caderno de provas, para, primeiro, uma sessão de aquecimento (2 problemas em uma hora e meia) e depois a maratona em si (8 a 11 problemas em 5 horas ininterruptas).
As equipes criam um programa na linguagem preferida para resolver cada um dos problemas. O caderno de provas especifica, para cada problema, alguns casos de teste e exemplos de entradas e as saídas correspondentes para realização de testes preliminares.
Após decidirem que terminaram, a equipe envia o código-fonte, via um sistema específico, por rede, para os juízes, que por sua vez compilam o código-fonte e executam uma bateria de testes para verificar a se o programa está correto ou não.
Os Problemas
Os problemas são enunciados de forma bem humorada, em contextos fictícios, porém, de aplicação prática. Envolvem, dentre outros:
- Aritmética e Álgebra
- Geometria Computacional
- Manipulação de Strings
- Grafos
- Problemas Combinatórios
Pontuação
- Cada resposta certa vale a quantidade de minutos necessária para resolver o problema desde o início da competição: quanto mais rápido, melhor!
- Cada resposta errada soma 20 minutos ao tempo final e não existe limite para respostas erradas
- O time com mais problemas resolvidos e menor pontuação é o melhor colocado
- Cada problema corresponde a um balão de uma cor, ao resolver um problema, o balão correspondente é colocado em seu computador
Tipos de Erros
Os programas podem ser enquadrados nos seguintes tipos de erros:
- Erro de compilação
- Erro de execução
- Saída em formato errado
- Resposta errada
- Tempo de execução excedido
- Contate os organizadores…
O Que É Permitido
- C, C++, Java, Python, Pascal
- Ambiente computacional Maratona Linux
- Consulta a livros e material impresso
- Papel e caneta
- Imprimir o código escrito (para depuração e análise do código)
- Tirar dúvidas (clarifications) sobre a corretude e completude do enunciado dos problemas
- Se alimentar, ir ao banheiro…
O Que Não É Permitido
- Internet
- Aparelhos eletrônicos
- Comunicação com o técnico ou outros
- Shell script
E o Técnico?
É o responsável pela inscrição e parte burocrática. Também acompanha os juízes durante a competição e defende os interesses do time e fiscaliza todo o processo. Não é uma regra, mas geralmente os técnicos treinam as respectivas equipes.
A Cefet-Timóteo e a Maratona
2010 foi o ano da primeira participação de um time da Cefet-Timóteo na Maratona de Programação (Confira o Hall da Fama). A preparação foi muito rápida (apenas 4 sessões, 22 dias antes da competição) e ainda assim obtivemos um resultado satisfatório.
No decorrer do semestre realizaremos maratonas internas para seleção de times (plural proposital) para treinamento mais intenso e participação na competição.
Hall da Fama em construção
2010
- Fase Regional da Maratona de Programação
- Fase Final da Maratona de Programação
- Equipe:
- Técnicos:
- Posição:
- Fotos