OBI 2025 – Fase 1 Nível 1

Pizzaria

Solução escrita por João Pedro Castro

Conhecimentos necessários:

Se a quantidade de pizzas grandes é $$G$$ e a de pizzas pequenas é $$P$$, então a quantidade de fatias total é $$8 \cdot G + 4 \cdot P$$. Porém, o enunciado pede para subtrairmos 2 fatias, uma para Larissa e outra para sua mãe, ou seja temos que imprimir o valor $$8 \cdot G + 4 \cdot P – 2$$.

Clique aqui para ver o código completo.

Fila

Solução escrita por Julia Tiosso

Conhecimentos necessários:

O problema se resume a saber, para cada aluno, se existe alguém com altura maior ou igual à sua frente (direita, no vetor).

Para a primeira subtarefa, podemos passar por todos os alunos e, para cada um, verificar todos os outros à sua frente: se encontrarmos alguém maior ou igual, então ele está escondido. A complexidade desse algoritmo é $$O(N^2)$$, suficiente para $$N \leq 1000$$.

Agora, para um algoritmo em $$O(N)$$, podemos perceber que é suficiente comparar cada aluno apenas com a maior altura à sua frente. Para isso, percorremos o vetor da direita para a esquerda, guardando em uma variável $$max_a$$ qual foi a maior altura de um aluno até o momento e, então, há dois casos:

  • O aluno não está escondido, ou seja, sua altura é maior do que $$max_a$$.
  • Caso contrário, o aluno está escondido, então incrementamos a resposta em um.

Clique aqui para ver o código completo.

Café com Leite

Solução escrita por João Pedro Castro

Conhecimentos necessários:

Chame de $$L$$ a quantidade de leite que iremos usar para encher a xícara. Fica claro que $$C = D + L$$ (quantidade total de café com leite é café + leite), ou seja, $$L = C – D$$. Agora, só precisamos ver que se esse valor $$L$$ está entre $$A$$ e $$B$$, que é equivalente a dizer que ele é maior ou igual à $$A$$ e menor ou igual à $$B$$. Podemos fazer essa checagem com um if usando o operador && (and).

Clique aqui para ver o código completo.