Alberto Pacheco tem o otimismo típico de um geek – e não se importa de carregar nas metáforas minutos antes de se registar naquela que é provavelmente a mais prestigiada prova de programação do mundo: «dava jeito conseguir correr mais de 30 segundos seguidos. Tirando isso, somos os três grandes atletas… mas é a usar a cabeça. Não é qualquer atleta que aguenta fazer uma maratona de cinco horas à frente do computador!».
Às 11h00 de quinta-feira, quando começar a final do International Collegiate Programming Contest (ICPC), Alberto Pacheco, Gonçalo Paredes, e Ricardo Pereira arrancam para mais uma “maratona mental”. Não será a primeira vez que os três membros da FCUP 1 se sujeitam a tamanha prova, mas também há a convicção de que, entre os 400 estudantes de 47 países que entram na competição realizada no Centro de Congressos da Alfândega do Portp, haverá quem já nem sequer arregale os olhos quando ouve um “tiro-de-partida”. «Eu tenho uma menção honrosa numa Olimpíadas de Matemática (de 2016), e o Gonçalo Paredes conseguiu uma medalha de bronze nas Olimpíadas de Informática (de 2016), mas há equipas que têm três membros com várias medalhas… e de ouro», sublinha Alberto Pacheco.
Sendo o “matemático” da equipa, o Alberto Pacheco não hesita em recorrer aos números para ilustrar os poderios que a equipa de alunos da Faculdade de Ciências da Universidade do Porto (FCUP) terá de enfrentar: «só a China tem uma população 150 vezes maior que a de Portugal. Logo terá mais facilidade em recrutar pessoas que gostam de matemática e programação. Além disso, os membros das equipas chinesas são selecionados vários anos antes, para irem treinando até chegarem ao momento de entrar nas competições internacionais».
A descrição dos treinos portugueses ajuda a perceber que só um golpe de asa inesperado poderá inverter a relação de forças estabelecida entre equipas de países sem tradição, como Portugal, que participa no ICPC com uma única equipa, e as representações chinesa e americana com a 17 equipas cada. «Tenho outras atividades, mas sempre que possível tento programar. Podem ser coisas que duram horas… os nossos treinos podem durar entre três e cinco horas, mas não treinamos todos os dias», descreve Gonçalo Paredes.
Com treinos duas vezes por semana, a única equipa portuguesa na final do ICPC não tem outras pretensões para lá de «chegar a meio da tabela». «Na primeira vez que participámos numas olimpíadas nacionais tivemos como objetivo não ser maus. Depois, quando participámos numa competição regional (com vários países) quisemos ser bons; agora nesta competição mundial o objetivo é perder pelo menor número possível», explica Alberto Pacheco para, de seguida, fixar um objetivo com maior detalhe: «queremos ficar à frente das equipas da nossa região (sudoeste europeu)».
Apesar de assumidamente não terem o mesmo “calo” de outras equipas, os membros da FCUP 1 também já não são propriamente novatos nas competições de programação: os três conheceram-se por volta do 8º ano de escolaridade, com a participação nas primeiras provas dedicadas à informática e/ou à matemática. As experiências passadas – e o facto de estudarem os três na FCUP – haveria de ser determinante na constituição da equipa de programação. Até porque o trio incorpora um dos formatos mais comuns nestas competições: «Há equipas que são constituídas por três informáticos, mas muitas têm dois informáticos e um matemático… porque é importante ter alguém que saiba pensar», refere Alberto Pacheco numa clara provocação dirigida aos dois colegas de equipa, que são responsáveis pela programação.
Os informáticos das diferentes equipas devem fazer a programação num computador cedido pela organização. Nenhum dos concorrentes pode aceder à Internet durante a prova. Apenas informação que ajuda a perceber as linguagens de programação pode ser usada. Os documentos pessoais não podem superar as 25 páginas. Os matemáticos das diferentes equipas podem ser facilmente identificáveis: geralmente, trabalham com papel e lápis.
«Por vezes, um programador pode ter uma função de “macaco do código”, e um matemático pode ajudar a descobrir alguns buracos nos algoritmos. Claro que os meus dois colegas informáticos aprenderam matemática e eu também aprendi a programar… mas se fosse concorrer sozinho nunca conseguiria programar o suficiente para participar numa prova destas», refere Alberto Pacheco.
Durante as 5 horas da final do ICPC, os trio da FCUP terá de desenvolver algoritmos que permitam resolver 12 problemas. A equipa portuguesa prevê resolver estes problemas com recurso à linguagem C++. «O Gonçalo ensinou o Ricardo a programar em C++… e eu também aprendi com ele a programar em C++. É possível que tenhamos escolhido esta linguagem porque era aquela que o Gonçalo preferia», ironiza Alberto Pacheco.
Gonçalo Paredes dá uma justificação tecnicamente mais plausível: «O C++ dispõe de uma biblioteca com várias ferramentas que são muito úteis. Além disso, o código pode ser mais simples e legível e é mais fácil de aprender». O C++ é a linguagem preferida, mas não esgota as opções. «Se for preciso para um problema específico que o exija, podemos usar outras linguagens de programação», acrescenta Gonçalo Paredes.
O primeiro contacto gerou alguns sentimentos contraditórios no trio da FCUP: enquanto alguns dos concorrentes parecem ter esgotado a capacidade de interação social, outros tentam ser simpáticos com quem se cruzam. A competição não se esgota na maratona de cinco horas da próxima quinta-feira. «Há sempre empresas nestes eventos. A participação nestas competições é algo que costuma ser valorizado nestes currículos», acrescenta Gonçalo Paredes.
Apesar do fator competitivo, tanto Gonçalo como Alberto lembram que, por mais de uma vez, não são os resultados, mas sim o «amor à arte» que permite desenvolver soluções mais engenhosas ou eficientes. O que coincide com o teor das palestras que o professor Pedro Ribeiro, que assume as funções equivalentes à de treinador, tem vindo a dar na fase de preparação para a final do ICPC.
Gonçalo Paredes repete o mote que o professor da FCUP lhes apontou para os próximos dias: «tendo em conta os objetivos e a competitividade desta prova, o professor aconselha-nos essencialmente a desfrutar da experiência». Na quinta-feira, se verá o que produziu tamanha dedicação aos códigos e algoritmos.