Superadas as dificuldades do trajeto, chegamos à sede da UniAlgar e enfrentamos uma pequena fila para a obtenção dos crachás. Imaginei que não teríamos tempo de tomar o café da manhã que é tradicionalmente servido antes do aquecimento da maratona, mas ainda tivemos uns 15 minutos disponíveis para isto. Dentre as opções, haviam pequenos sanduíches de queijo/presunto/alface, assim como pães de queijo e uma salada de frutas, além de diversos sabores de sucos naturais, embora não me lembre se havia café disponível (o que seria uma heresia, diante dos 150 programadores que lá estavam presentes).

Pouco depois nos dirigimos às mesas onde estavam os computadores. Ainda precisei procurar um dos melancias (ajudantes que tem este apelido carinhoso devido às blusas verdes que vestem) pois haviam esquecido do segundo “E” no “GEAED”, nome da nossa equipe (detalhe que foi rapidamente resolvido). Logo quando passamos pelo salão, rumo ao local onde o café da manhã estava sendo servido, notei que os computadores rodavam Linux, fato que foi constatado quando sentamos à mesa. Isto, a princípio, não seria problema algum. As linguagens de programação permitidas na maratona (C, C++ e Java) são portáveis entre diversos sistemas operacionais e plataformas. Teoricamente não haveria diferenças, exceto no ambiente desktop em si. Mas como dizem, na prática a teoria é diferente. Explicarei este fato logo após comentar sobre o início do aquecimento.

Fomos então convidados a ouvir o hino nacional enquanto distribuíam as provas. O hino foi tocado por completo, ao invés de somente a primeira metade como é comum, e poucos minutos após seu término iniciou-se o aquecimento. Os problemas propostos eram ridiculamente simples, como vocês podem ver no PDF. Um envolvia soma e o outro inversão de strings. Eram problemas completamente triviais, que serviram apenas para testarmos os computadores e o BOCA (sistema utilizado para a submissão das resoluções). Nossa surpresa, entretanto, foi perceber que uma equipe enviou (e acertou) a solução do primeiro problema com 0 (sim, zero!) minutos. Eu não cheguei a ver, mas diversas pessoas afirmaram que esta equipe começou a ler a prova e resolver os problemas ainda durante a execução do hino nacional. Um belo exemplo de falta de patriotismo aliado ao “jeitinho brasileiro” de passar na frente dos outros.

Quando começamos a implementar a solução dos problemas, nos deparamos com o clássico problema do C++ quando se mistura o ‘cin’ (para pegar valores separados por espaços, quebras de linha, etc.) com a função ‘getline()’ (utilizada para se ler uma linha inteira de uma vez). Isto não seria surpresa, se na IV Maratona Norte-Mineira de Programação, qual participamos duas semanas antes, nós não tivéssemos resolvido todos os problemas utilizando C++ sem enfrentar este problema uma única vez sequer. Por algum motivo, o comportamento dos mesmos é diferente no Linux e para resolver isto é necessário uma pequena gambiarra. Como o ‘cin’ para quando encontra uma quebra de linha, é necessário chamar o método ‘cin.get()’ para descartá-la e assim não deixar que a mesma interfira no comportamento da ‘getline()’.

O mais curioso, é que embora esta explicação faça sentido (e estava até mesmo disponível nas dicas presentes no caderno de aquecimento), há o seguinte fato: embora tenhamos sempre utilizado máquinas Windows nas maratonas quais participamos anteriormente, o BOCA roda sobre o Linux. Ou seja, por mais que esse comportamento da entrada padrão não tivesse nos afetado durante o desenvolvimento das soluções no Windows, seria compreensível caso, após submetermos um problema, o mesmo não rodasse corretamente no servidor. Mas como isto não aconteceu, ainda paira uma certa dúvida sobre o assunto.

Passado o susto inicial e solucionados os dois problemas do aquecimento, apenas conversamos um pouco com nossos professores e aguardamos a hora do almoço. A comida servida não foi nada extraordinária, mas o gosto estava ótimo. Após alguns minutos de espera, retornamos ao saguão onde estavam os computadores, já nos posicionando para a verdadeira competição. Desta vez nos alertaram para só logarmos no sistema e abrirmos a prova quando autorizados, o que era de se esperar. Havia nas mesas embalagens de isopor com o lanche individual de cada participante, assim como uma garrafa de água mineral para cada um. Por volta das 13h de sábado, dia 26/05, foi iniciada a I Maratona Mineira de Programação.

Fizemos rapidamente três problemas, em torno de 1h de prova, e estávamos entre os 10 primeiros. O problema foi que a partir daí nós “travamos”. Nas quatro horas seguintes não conseguimos resolver mais um problema sequer. Nem mesmo o problema intitulado “Macaco Rural” (alusão ao nome de sites de compras coletivas como o Peixe Urbano), que foi o terceiro mais resolvido, nós fizemos. Perdemos muito, mas muito tempo mesmo tentando resolvê-lo. Ainda submetemos uma resposta incorreta (por interpretarmos incorretamente os limites de entrada - o algoritmo estava certo) do problema “Fazenda” e na última meia hora de prova, imaginamos como resolver o “Jogo da Vida”, mas sem tempo de implementar sua solução.

Ao fim da competição, ficamos no 19º lugar, tomando uma surra de quase todas as universidades federais do estado. A única instituição não-federal que ficou na nossa frente foi uma estadual: a própria Unimontes, com a equipe “Thundercats”, dos acadêmicos do curso de Engenharia de Sistemas, que ficou em 14º lugar. Se levarmos em conta a equipe “E.Q.U.I.P.E.”, formada pelos nossos veteranos do curso de Sistemas de Informação, que ficou em 20º, fica parecendo que nós estamos todos em um nível parecido. Mas na verdade, se a gente parar pra pensar um pouco, isto é péssimo.

Por diversas vezes já vi o Prof. Guilherme Barbosa Vilela afirmar: não se pode comparar a Unimontes com a própria Unimontes. Eu concordo. De que adianta os estudantes da mesma estarem em um nível parecido, se comparando com o restante do estado nós perdemos vergonhosamente? É claro que houveram outras federais (com orçamentos anuais muito mais gordos que o nosso) atrás da gente na classificação, mas será se nosso lugar é ali, escondido entre os times de desempenho mediano? A experiência foi válida. A competição foi muito boa. O que deixou a desejar foi o nosso desempenho, não apenas da minha equipe ou da Unimontes, mas do Norte de Minas como um todo.

O pessoal da UFMG está de parabéns, pelos primeiro e segundo lugares. Foram as únicas equipes que conseguiram resolver 7 e 6 problemas, respectivamente. A UFU também mandou bem, faturando três das nove medalhas, juntamente com a já citada UFMG. Fechando o quadro, tivemos a UFV com duas medalhas e a UNIFEI com uma. Os terceiros colocados ganharam um telescópio cada, os segundos um PS Vita e os primeiros uma TV Full HD 40”. Os técnicos de cada uma destas equipes também ganharam os mesmos prêmios.

O fato mais curioso da premiação foi o seguinte: quando o técnico da equipe “Paranoid Parots” (da UFU, terceiro lugar) subiu ao palco, ele afirmou que estava lá apenas por ser professor, pois quem realmente havia treinado a equipe era um acadêmico. Este cidadão, que infelizmente não sei o nome para deixar aqui registrado, já havia ganhado uma medalha pelo quarto lugar (equipe “Chinelada na Orelha”, também da UFU), mas saiu de lá com duas medalhas e um telescópio (que não ganharia sem a “homenagem” do professor supracitado).

Terminada a premiação, que foi precedida por longos discursos de funcionários de alto escalão do Grupo Algar, houve um fato inédito (ao menos nas maratonas quais participei): uma festa para fechar com chave de ouro a competição. Não vi bebidas alcóolicas, mas não faltou churrasco, caldos e refrigerantes, além de música e diversos video-games (incluindo um Xbox com Kinect) liberados para os participantes. A organização realmente investiu muito no evento. É óbvio que eles esperam garimpar talentos neste tipo de competição. Se não me engano, citaram que os melhores colocados estavam convidados para realizar programas de estágio e os currículos de todos os participantes seriam armazenados para futuros recrutamentos. A festa e os comes e bebes estavam ótimos, mas você não esperava que empresa alguma se daria a tanto trabalho de graça, não é mesmo?

Por fim, saímos de lá com um gostinho de “quero mais”. Sinto que estivemos muito aquém do nosso potencial e espero que possamos fazer melhor no ano que vem, caso tenhamos novamente a oportunidade. Mesmo com as duas pisadas na bola (citadas no post anterior), o pessoal da UFU merece o reconhecimento pela iniciativa, assim como o Grupo Algar que realizou um evento praticamente impecável (não lembro de nada aqui que eu possa reclamar).