Programação Competitiva

6 minutos de leitura Autor Neilor Tonin beecrowd Na última semana de março 2022 será...
(6 minutos de leitura) Autor: Neilor Tonin - beecrowd Na última semana de março/2022 será a final brasileira da Maratona SBC de programação. A beecrowd é patrocinadora oficial desse evento! Aproveitando esse clima de Maratona nosso texto de hoje é sobre Programação Competitiva. Essas competições são superimportantes na carreira de um programador. Vem entender como funciona!

Programação Competitiva

Autor: Neilor Tonin – beecrowd

(6 minutos de leitura)


O ser humano é competitivo por natureza. Fala-se que a competição está em nosso DNA desde os tempos das cavernas (competição por alimentos) e que faz parte da nossa sobrevivência e evolução. 

É muito comum pararmos para acompanhar competições das Olimpíadas e a Copa do Mundo. São as competições mais difundidas e conhecidas. Mas existem outros tipos de competições, que não envolvem o esforço físico e não necessariamente os competidores dependem de sua condição física. Nestas competições, o item indispensável é o poder de raciocínio. Podemos citar dentre estas, as olimpíadas de ensino médio (matemática, química informática) e as de nível superior (Maratona de programação para quem estuda Ciência da Computação e cursos similares).

Estes eventos são caracterizados pela programação competitiva, ou seja, a programação em um ambiente de competição, na qual vence o time que resolver a maior quantidade de problemas em um tempo pré-determinado, de acordo com as especificações fornecidas, fazendo o uso da programação. Em caso de empates, vence o time que resolveu a mesma quantidade de problemas em menos tempo.

Aliás, por falar em programação competitiva, estamos próximos da data da grande final da XXVI Maratona de Programação. É uma competição em que, em março deste ano, reunirá os 60 melhores times do Brasil (compostos por 3 competidores cada) que passaram da primeira fase (cerca de 800 times de inúmeras universidades). Esta competição será em Gramado, RS e o mesmo evento ocorrerá simultaneamente em diversos países da América Latina. Os melhores qualificados ganham como recompensa a possibilidade de participarem da final Mundial do evento. Para quem é estudante de Computação, não há com certeza outro evento de maior importância e com tanta riqueza de aprendizado, pois além da qualificação pessoal, fica na bagagem a experiência de uma viagem inesquecível.

Uma dica interessante é que os estudantes que optam por participarem destas competições normalmente são os mais disputados pelas empresas de TI, pois a programação competitiva os estimula a buscarem conhecimentos complementares para resolverem os problemas e possibilita a experiência de trabalharem em grupo sob pressão. Assim como os atletas têm que exercitar e buscar condicionamento físico, podemos ver estas competições como uma forma dos acadêmicos exercitarem o cérebro e se prepararem melhor para o mercado de trabalho, conseguindo enxergar soluções não triviais e formas diferentes de abordar e resolver um determinado problema quando estão em uma situação real dentro de uma empresa.

O portal da beecrowd tem mais de dois mil e trezentos problemas típicos de competições de programação, em formato muito similar aos problemas disponibilizados na Olimpíada Brasileira de Informática (OBI) e Maratona de Programação. Aliás, para quem quer se preparar, todos os problemas das edições anteriores da OBI e da Maratona de Programação (Fase eliminatória e Fase final) estão disponíveis no portal. Também estão disponíveis muitos problemas de competições regionais (como por exemplo a Maratona Mineira) e das escolas de Inverno e de Verão da Maratona (eventos preparatórios para as equipes competidoras). Estes problemas são excelentes para que programadores se desenvolvam ainda mais em algoritmos e aprimorem suas técnicas de programação.

Neste ano, a beecrowd será patrocinadora oficial da final da Maratona de Programação (eliminatória latino-americana para a final mundial) e usualmente fazemos um espelho da competição na mesma data da prova oficial. Isso significa que, se seu time ficou de fora da fase final, poderá tentar resolver os mesmos problemas que as equipes classificadas resolverão em Gramado. A prova no portal (beecrowd) deve iniciar algumas horas depois que a prova oficial. Assim que a competição estiver disponível no portal, bastará acessar https://beecrowd.com/, se cadastrar, logar e acessar a aba de CONTESTS para encontrar a prova. Avisaremos quando tudo estiver pronto para você se inscrever!

Para finalizar, apenas para conhecimento dos detalhes de uma competição. A prova dura 5 horas (tanto da primeira fase quanto da final). Normalmente são disponibilizados para as equipes de 8 a 13 problemas de assuntos e complexidades variados (as finais normalmente misturam alguns assuntos em determinadas questões além de exigir um excelente raciocínio lógico). Estes problemas vão desde problemas bem simples e que normalmente as melhores equipes gastam poucos minutos para resolverem até problemas bem complexos, os quais poucas equipes na América Latina conseguem resolver. 

Para ilustrar um pouco e explicar alguns detalhes, segue o placar de uma competição. 

Esta foi uma competição individual e pode-se perceber que a competição está encerrada (tempo 00:00 para resolver). Foram ao todo 13 problemas, mas que o competidor que venceu resolveu 9 deles. O quadrado em cinza indica o competidor que foi o primeiro de todos a submeter uma solução correta para o problema (por exemplo, o problema C para o competidor 2). Também o número no círculo indica a quantidade de vezes que o competidor submeteu uma determinada solução até acertar o problema (o competidor 1 submeteu 4 vezes o problema B e 1 vez o problema A, por exemplo). 

Interessante também é que cada submissão errada acrescenta uma penalidade no tempo total de resolução e, o número abaixo do problema, indica em qual tempo da prova o competidor conseguiu acertar. Por exemplo, o competidor 3 resolveu o problema A no minuto 112 da prova, ou seja, pouco antes de fechar 2 horas desde o início dela. Esses tempos são critério de desempate. Por exemplo, embora o segundo e terceiro colocado tenham resolvido 8 problemas, o segundo colocado resolveu em um tempo bem menor. Problemas com a coloração branca indicam que o competidor não conseguiu acertar. Por exemplo, o primeiro competidor submeteu 10 vezes o problema I sem sucesso. De qualquer forma, este tempo não é contabilizado (quando o competidor não acerta o problema).

Segue abaixo também uma foto de uma Final Nacional da Maratona de Programação. Esta imagem é da Final Nacional de 2012, e aconteceu em Londrina, PR. Cada balão indica um problema resolvido pela equipe.

Acompanhem nosso blog e redes sociais para mais informações sobre a final da Maratona de Programação desse ano. 


Gostou do nosso conteúdo? Então siga-nos nas redes sociais para ficar por dentro de mais informações e acompanhe o nosso blog.

Autor: Neilor Tonin é Chief Academic Officer na beecrowd. É também professor e coordenador responsável pelas áreas de Engenharia da Computação e Ciência da Computação em uma grande universidade Brasileira. Neilor é membro ativo do comitê responsável pela organização da Olimpíada Brasileira de Informática (OBI), etapa brasileira da Olimpíada Internacional de Informática (IOI).

Compartilhe este artigo em suas redes sociais:
Avalie este artigo:
[yasr_visitor_votes size=”medium”]

Conteúdo

Nossos artigos mais recentes

Leia sobre as últimas tendências na área de tecnologia
NEARSHORE_ LATAM AS THE MAIN DESTINATION FOR THE BEST IT TALENT thumb blog
À medida que navegamos por um mundo em constante transformação e evolução...
The Strength of the Independent WF - Thumb blog
A ascensão da força de trabalho independente está redefinindo os paradigmas tradicionais...
The 4 Forces Shaping the Future of Work - Thumb blog
Você conhece quais são as forças que estão redefinindo fundamentalmente a forma...

Extra, extra!

Assine nossa newsletter

Fique sempre atualizado com as novidades em tecnologia, transformação digital, mercado de trabalho e oportunidades de carreira