Apresentação

A Maratona de Programação é um evento da Sociedade Brasileira de Computação que existe desde o ano de 1996 (neste ano ocorre a XXII edição do evento). A Maratona é uma competição classificatória (em duas fases) para as finais mundiais do concurso de programação da ACM, o ACM International Collegiate Programming Contest (ICPC). A primeira fase (etapa regional classificatória) é disputada em várias sedes distribuídas por todo o país e os melhores times de cada sede classificam-se para a final brasileira da competição. Este ano a fase regional ocorrerá di 9/Set em 55 sedes sedes regionais. A fase final ocorrerá dias 10 e 11/Nov em Foz do Iguaçu - PR.
 

Dentre os times de universidades do Brasil que participam da Maratona de Programação, são selecionadas as times que representam o Brasil na final mundial do ICPC (ACM International Collegiate Programming Contest). A cada ano o evento apresenta um grande crescimento no número de instituições e estudantes participantes. No ano de 2007 cerca de 6700 times, aproximadamente 20000 estudantes, representando 1821 escolas de 83 países, competiram em regionais em todo o planeta e 100 times participaram da Final Mundial do evento em Banff, no Canadá. Na ocasião, quatro times brasileiros estiveram presentes nas finais mundiais. Já no ano de 2016, mais de 45 mil estudantes de quase 3000 escolas de mais de 100 países competiram em regionais em todo o planeta, e 132 times (cerca de 1% do total que iniciou a competição) participaram das finais mundiais do evento, em Rapid City, Estados Unidos. Seis tim es brasileiros estiveram presentes nas finais mundiais de 2016.
 

A Maratona de Programação é destinada a alunos de cursos de graduação e início de pós-graduação na área de Computação e afins (Ciência da Computação, Engenharia de Computação, Sistemas de Informação, Matemática, etc). A Maratona de Programação visa reunir em um mesmo ambiente estudantes da área de computação, de forma que os mesmos, além de competir de uma forma saudável, possam: - interagirem com outros competidores de outras instituições e demonstrarem suas capacidades de resolver problemas, programarem e trabalharem em grupo; - desenvolverem um raciocínio rápido, de forma a lidar melhor com problemas computacionais de variadas complexidades; - buscarem conhecer o máximo de recursos das linguagens de programação; - se sentirem motivados a es tudar tópicos avançados da computação.
 

Os times são compostos por três alunos, que devem tentar resolver durante 5 horas o maior número possível dos cerca de 10 problemas que lhes são entregues no início da competição. Estes alunos têm à sua disposição apenas um computador e material impresso (livros, listagens, manuais) para vencer a batalha contra o relógio e os problemas propostos. Os competidores de cada time devem colaborar entre si para descobrir os problemas mais fáceis, projetar os testes, e construir as soluções que sejam aprovadas pelos juízes da competição. Alguns problemas requerem apenas compreensão, outros conhecimento de técnicas mais sofisticadas, e alguns podem ser realmente muito difíceis de serem resolvidos.
 

O julgamento de cada proposta de solução é estrito. Nos enunciados dos problemas constam exemplos dos dados de testes dos problemas, mas eles não têm acesso às instâncias de testes usadas pelos juízes. A cada submissão incorreta de um problema (ou seja, que deu resposta incorreta a uma das instâncias dos juízes) é atribuída uma penalidade de tempo. O time que conseguir resolver o maior número de problemas (no menor tempo acumulado com as penalidades, caso haja empate) é declarado o vencedor.
 

Maiores informações sobre o ICPC, a Maratona de Programação e tudo mais relacionado ao treinamento para competições de programação podem ser obtidas em:

http://icpc.baylor.edu/icpc/
http://maratona.ime.usp.br
http://www.inf.ufg.br/maratona/
http://www.facebook.com/maratonago
http://www.facebook.com/groups/maratonago/