OBI 2022 - Fase 2 - Programação Nível 1
Para se preparar para a OBI, confira o nosso Roteiro de Estudos, nele você vai encontrar um direcionamento completo de como estudar!
Para conferir a prova na íntegra, clique aqui.
Pirâmide
Escrito por Enzo Dantas
Conhecimento prévio necessário:
Ao visualizar a pirâmide em 3D, a ideia mais intuitiva é construir a pirâmide camada por camada. Começamos pela base da pirâmide e vamos subindo, adicionando um bloco em cada posição de cada camada. Cada camada tem cerca de blocos e temos camadas, então a complexidade final fica . Como , essa solução é rápida o suficiente.
Confira o código para melhor entendimento
Entretanto, existe uma solução mais rápida em . É interessante que o leitor tente achar essa solução antes de ler o restante do editorial. Ao analisar casos pequenos, percebe-se o seguinte padrão: a altura de uma posição qualquer é a a distância da posição a uma das quatro bordas da pirâmide (a menor entre as quatro distâncias). O código consiste em percorrer todas as posições e fazer o mínimo entre as 4 distâncias.
Confira o código para melhor entendimento
Tanque de Combustível
Escrito por Vitor Veiga
Conhecimento prévio necessário:
No problema queremos calcular quanta gasolina é preciso comprar para concluir uma viagem. São dados o número de quilômetros por litro de gasolina , quantos quilômetros faltam para chegar no destino , e quantos litros de gasolina já estão no tanque . Assim, é fácil ver que a parte mais difícil desse problema é a matemática. Achando a fórmula para a resposta, o código fica muito simples.
Temos que o número de quilômetros que conseguimos rodar sem comprar nada de combustível, ou seja, o que conseguimos rodar só com o combustível que já está no tanque, será igual a . Agora, basta calcular quantos quilômetros faltam tirando os que já podem ser rodados com o tanque e depois converter esse valor para litros dividindo o resultado por .
Terminaremos com a seguinte equação: , quantos quilômetros faltam para chegar ao destino menos a quantidade de quilômetros que podemos correr sem comprar combustível dividido pela quantidade de quilômetros que são corridos com um litro. Caso seja possível percorrer todo o percurso só com a gasolina que já está no tanque, não é preciso comprar mais nada.
Clique aqui para conferir o código.
Câmeras
Escrito por Enzo Dantas
Conhecimento prévio necessário:
Primeiramente, iremos construir a matriz e marcar quais posições são vigiadas por câmeras e quais estão livres. Se uma câmera posicionada em está apontada para o Oeste, por exemplo, vamos marcar todas as posições a direita de como vigiadas (todas as posições ). Em seguida, vamos fazer uma DFS começando do e vamos conferir se a DFS chega na posição .
Confira o código