OBI 2022 - Fase 1 - Programação Nível Júnior
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.
Cinema
Escrito por Caique Paiva
Conhecimento prévio necessário:
O que o problema nos pede é bem simples. Ele vai dar duas idades, e a gente tem que dizer quanto de dinheiro eles vão ter que gastar juntos para ir ao cinema. Nós fazemos esse tipo de coisa na cabeça muitas vezes, mas como fazer um computador fazer isso?
Vamos fazer o seguinte, chame a primeira idade de e a segunda idade de , e chame de a quantidade de dinheiro que eles vão gastar no total. Então, temos 3 casos:
- Se , então, a primeira pessoa gasta reais, logo, somamos reais no .
- Senão, se , então, a primeira pessoa gasta reais, logo, somamos reais ao
- Senão, somamos reais ao .
Fazemos a mesma coisa para a segunda pessoa, e no final, teremos o total gasto.
Clique aqui para conferir o código
Hotel
Escrito por Arthur Lobo
Conhecimento prévio necessário:
Primeiro vamos calcular qual foi o valor da diária paga pelo hospede e chamá-lo de . Para isso, vamos dividir em 2 casos:
- Ele chega antes do dia 16: se o hospede chega no dia , então o valor da diária aumentou em nos dias , ou seja, vezes no total, fazendo com que a .
- Ele chega depois do dia 16: chegando depois do dia 16, o valor da diária aumenta nos dias , ou seja, 14 vezes no total, fazendo com que .
Agora queremos saber quantos o hospede ficou no hotel, sabemos que ele chemou no dia e saiu no dia , passando os dias no hotel, ou seja,
Finalmente, o valor total gasto pelo hospede foi o valor da diária vezes quantos dias ele ficou no hotel, ou seja, .
Clique aqui para conferir o código
Quadrado Mágico
Escrito por Enzo Dantas
Conhecimento prévio necessário:
Primeiramente vamos calcular o valor da soma mágica, e vamos fazer isso calculando a soma de cada linha do quadrado.
Note que a linha que contém o número ilegível possui uma soma menor que as outras linhas (e por definição do quadrado mágico, todas as outras linhas possuem a mesma soma). Sendo assim, vamos percorrer as linhas uma por uma e salvar a soma de cada uma em um array (chamado ), semelhante a como foi feito na ilustração acima.
Em seguida, vamos ordenar o array em ordem crescente.
Perceba como o primeiro valor (o menor valor) corresponde ao valor da linha que contém o zero, enquanto todas as outras linhas possuem a mesma soma (a soma mágica). Perceba que, para que o valor de todas as linhas seja o mesmo, o valor do número ilegível será , que é igual a . No exemplo acima, o valor do número ilegível será .
Finalmente, para salvar a posição do número ilegível, vamos criar duas variáveis e . Quando estivermos lendo a matriz e , iremos declarar que e .