Sobre a Maratona de Programação

A Maratona de Programação é um evento realizado pela Sociedade Brasileira de Computação cujo objetivo é proporcionar o desenvolvimento da criatividade, trabalho em equipe, busca de novas soluções e técnicas computacionais em prol de resolver problemas em um tempo limitado.

Este evento consiste em uma competição na qual grupos de três pessoas devem resolver o maior número de problemas possíveis no tempo delimitado. A competição é dividida nas fases Regional e Sul-Americana. As melhores equipes são classificadas para o ACM-ICPC (International Collegiate Programming Contest). Os problemas são descritos através de enunciados, muitas das vezes com certo grau de humor nerd ou geek. Exemplos de entrada e saídas esperados pelo programa a ser codificado pelos grupos também são dados.

Apesar de aparentemente inofensivos, os problemas da Maratona, muitas vezes envolvem conceitos complexos e cuja solução é aplicável no mundo real, especialmente em problemas de otimização, em que se procura obter a melhor solução possível. Não é exagero dizer que um aluno que se aprofunda nesse tipo de competição está preparado para resolver problemas concretos, uma vez que, para obter êxito na competição, deve-se ter domínio de: Programação Dinâmica, Algoritmos Gulosos, Teoria dos Grafos, Teoria dos Números, Geometria Analítica, dentre várias outras técnicas e paradigmas de programação.

Cada time submete sua solução (através de um programa codificado em uma Linguagem de Programação), e um juiz, com ajuda de uma plataforma computacional, compara as saídas do programa do time com as saídas esperadas. Desta forma, o juiz pode dizer se a solução foi aceita ou ainda apresenta falhas.

Uma versão local da Maratona de Programação é realizada periodicamente no IFB de modo a treinar os alunos interessados na competição oficial e possibilitar o aprofundamento em técnicas de programação, algoritmos e estruturas de dados.