Comentário NOIC OBI 2022 - Fase 1 - Programação Nível Júnior

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 a e a segunda idade de b, e chame de con a quantidade de dinheiro que eles vão gastar no total. Então, temos 3 casos:

  1. Se a < 18, então, a primeira pessoa gasta 15 reais, logo, somamos 15 reais no con.
  2. Senão, se a >= 60, então, a primeira pessoa gasta 20 reais, logo, somamos 20 reais ao con
  3. Senão, somamos 30 reais ao con.

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 valor. Para isso, vamos dividir em 2 casos:

  • Ele chega antes do dia 16: se o hospede chega no dia N, então o valor da diária aumentou em A nos dias 2,3,...,N, ou seja, N-1 vezes no total, fazendo com que a valor = D + A*(N-1).
  • Ele chega depois do dia 16: chegando depois do dia 16, o valor da diária aumenta nos dias 2,3,...,N, ou seja, 14 vezes no total, fazendo com que valor = D + A*14.

Agora queremos saber quantos dias o hospede ficou no hotel, sabemos que ele chemou no dia N e saiu no dia 31, passando os dias N, N+1,...,31 no hotel, ou seja, dias = 31-N+1

Finalmente, o valor total gasto pelo hospede foi o valor da diária vezes quantos dias ele ficou no hotel, ou seja, valor \times dias.

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 somalinha), 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á soma magica - menor soma, que é igual a soma linha[1] - soma linha[0]. No exemplo acima, o valor do número ilegível será 15-10=5.

Finalmente, para salvar a posição do número ilegível, vamos criar duas variáveis pos_x e pos_y. Quando estivermos lendo a matriz e mtx[i][j]=0, iremos declarar que pos_x=i e pos_y=j.

Clique aqui para conferir o código