A modalidade Programação é indicada para alunos do Ensino Médio ou Fundamental e para alunos no primeiro ano do Ensino Superior e é dividida em quatro níveis:
Nível Júnior: para alunos do ensino fundamental
Nível 1: para alunos do ensino fundamental até o primeiro ano do ensino médio
Nível 2: para alunos do ensino fundamental até o terceiro ano do ensino médio
Nível Sênior: para alunos do quarto ano do ensino técnico e primeiro ano de graduação.
Só podem participar da competição alunos que tenham no máximo 20 anos completos no dia primeiro de julho do ano de sua participação, com exceção do nível sênior, que não possui limite de idade. Todos os participantes receberão certificados de participação. Os melhores colocados de cada modalidade receberão ainda medalhas de ouro, prata e bronze.
Os melhores colocados dos níveis júnior e 1 serão convidados para uma semana de cursos no Instituto de Computação da UNICAMP. Para os alunos do nível 2, haverá uma competição para escolher os quatro alunos integrantes da equipe brasileira na Olimpíada Internacional de Informática, que conta com a participação de equipes de mais de 70 países.
Datas das provas (2025)
1ª Fase (local): 12, 13 ou 14 de junho (quinta, sexta ou sábado)
2ª Fase (estadual): 15 de agosto (sexta-feira)
3ª Fase (nacional): 27 de setembro (sábado)
As provas da primeira e segunda fases são feitas na escola na qual o aluno se inscreveu. A prova da terceira fase é feita em uma escola de Ponta Grossa escolhida pela organização da OBI. A duração da prova varia entre duas e cinco horas, de acordo com o nível e a fase em que o aluno está.
Como se preparar
A boa participação na OBI depende de conhecimentos de uma linguagem de programação, de conhecimentos básicos e intermediários de estrutura de dados e algoritmos e de prática na resolução de problemas. É possível se preparar usando o próprio material disponível pelo site da OBI.
Existem sites que ajudam o treinamento oferecendo diversos problemas de competição de programação, como por exemplo:
br.spoj.com
www.beecrowd.com.br
As linguagens de programação aceitas são: C, C++, Java, JavaScript e Python. Para a seletiva da Olimpíada Internacional, apenas pode ser usada a linguagem C++.
As inscrições são feitas pela própria escola ou universidade na qual será feita a prova, então é importante verificar o calendário de inscrições no site da OBI.
Exemplo de problema e solução:
Juliana é uma famosa doceira reconhecida internacionalmente pelos seus bombons, exportados para todo o mundo. Embora não revele a ninguém as suas receitas, ela já deu entrevistas contando alguns de seus segredos. Sua fábrica de bombons utiliza somente chocolates comprados de um único produtor suíço, que envia barras gigantescas que são cortadas por grandes máquinas.
Dada uma barra grande de chocolate, Juliana realiza divisões sucessivas da barra até obter uma barra que contém a quantidade exata de chocolate para aquela receita. Após cada divisão, ela seleciona um dos pedaços resultantes e armazena os demais para uso futuro. As divisões são determinadas por critérios técnicos relacionados ao tamanho das barras e aos equipamentos disponíveis em um dado momento.
Por exemplo, se ela deseja obter uma barra de 100 g de chocolate a partir de uma barra de 3 Kg, primeiro ela divide a barra ao meio. Em seguida, um dos pedaços é dividido em cinco partes iguais e por fim, um desses pedaços de 300 g é dividido em 3 pedaços, resultando no pedaço de 100 g necessário para a receita. Nesse processo, 1 pedaço é utilizado para a receita e 7 pedaços de diferentes tamanhos serão guardados para uso futuro. A figura abaixo ilustra esse cenário.