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.io/, 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:
Outros artigos que você pode ter interesse em ler
- Todos (184)
- Bem estar (18)
- Carreira (38)
- Competições (6)
- Desenvolvimento (112)
- Design (8)
- Diversidade e Inclusão (3)
- Eventos (3)
- História (15)
- Indústrias (6)
- Inovação (37)
- Liderança (8)
- Projetos (23)
Tech na Educação
(9 minutos de leitura)
No cenário educacional contemporâneo, a tecnologia desempenha um papel cada vez mais crucial, revolucionando não apenas a forma como os alunos aprendem, mas também como os educadores ensinam. À medida que nos adaptamos a um mundo digitalmente conectado, novas tendências emergem, prometendo transformar ainda mais a maneira como a educação é concebida e entregue. Vem ler este texto para saber das últimas tendências em tecnologia educacional e explorar seu impacto no desenvolvimento dos alunos e na evolução do ensino. Vem com a gente!...
Desenvolvimento Ético de Software
(5 minutos de leitura)
Desenvolver softwares é uma atividade complexa que vai muito além da simples codificação. Envolve um processo meticuloso de planejamento, design, implementação, teste e manutenção para criar sistemas confiáveis, eficientes e seguros. No entanto, além de buscar funcionalidade e desempenho, os desenvolvedores também devem considerar cuidadosamente os aspectos éticos do software que estão criando. Neste texto iremos falar sobre a ética e a responsabilidade ao desenvolver software. Vem ler!...
Equilíbrio Entre Crescimento Profissional e Pessoal
(6 minutos de leitura)
Em um mundo movido pela constante busca pelo sucesso profissional, muitas vezes nos vemos imersos em nossas carreiras, esquecendo-nos do equilíbrio fundamental entre o crescimento profissional e pessoal. Enquanto dedicamos horas ao código, à resolução de problemas e ao avanço em nossas habilidades técnicas, é essencial lembrar que nossa jornada como seres humanos vai além das linhas de código. Vem ler nosso texto e ver dicas superlegais de como conseguir esse equilíbrio!...
Como Destacar no Currículo os Prêmios em Competições de Programação
(6 minutos de leitura)
Em um campo tão dinâmico quanto o desenvolvimento de software, é crucial destacar-se da multidão. Uma maneira excepcional de fazer isso é por meio do reconhecimento e dos prêmios conquistados em competições de programação competitiva. Além de demonstrar suas habilidades técnicas superiores, esses prêmios atestam sua capacidade de resolver problemas complexos, colaborar em equipe e entregar resultados excepcionais sob pressão. Hoje falaremos sobre currículo e as competições, se interessa? Vem com a gente!...
Código Aberto e Colaboração
(5 minutos de leitura)
Se você está pronto para começar a explorar o mundo do código aberto, esteja ciente de que encontrará muitas oportunidades de aprendizado e desafios. A colaboração é o cerne desse ambiente, impulsionando a inovação e influenciando o rumo da tecnologia. Vem ler nosso texto para saber mais sobre esse assunto!...
Mulheres na Programação: Celebrando Conquistas e Inspirando o Futuro
(5 minutos de leitura)
Nesse dia 08 de março falaremos sobre o impacto inspirador das mulheres na programação ao longo da história, desde pioneiras como Ada Lovelace até líderes contemporâneas como Doina Precup e Reshma Saujani. Este texto celebra suas conquistas e destaca o progresso em direção a uma indústria de tecnologia mais inclusiva e diversificada. Junte-se a nós para inspirar e capacitar as futuras gerações de mulheres na programação, criando um futuro mais equitativo e brilhante para todos na indústria da tecnologia....
Você gostaria de ter um artigo ou vídeo seu publicado no blog e redes sociais da beecrowd? Caso tenha interesse, envie-nos um e-mail com o assunto “BLOG” para [email protected] e passaremos mais detalhes sobre o processo e pré-requisitos para ter o seu artigo/vídeo publicado em nossos canais
Sede
Rua Funchal, 538
Cj. 24
Vila Olímpia
04551-060
São Paulo, SP
Brasil