OBI 2026 – Fase 1 Nível Mirim


Receita Revolucionária

Solução escrita por Levi Oliveira

Conhecimentos necessários:

Seja $$P$$ quantidade de pães e $$O$$ a quantidade de ovos. Por dia, Murilo come exatamente $$2$$ pães e $$4$$ ovos. 

Se ele só comesse pães, a quantidade de cafés da manhã que ele conseguiria fazer seria $$\left\lfloor \frac{P}{2} \right\rfloor$$.

Se ele só comesse ovos, a quantidade de cafés da manhã que ele conseguiria fazer seria $$\left\lfloor \frac{O}{4} \right\rfloor$$.

Como em um café da manhã completo ele precisa comer pães e ovos, a resposta será o mínimo entre $$\left\lfloor \frac{P}{2} \right\rfloor$$ e $$\left\lfloor \frac{O}{4}\right\rfloor$$. Para computar esse valor, podemos ou usar a função $$min(a, b)$$ da biblioteca <algorithm>, a qual compara dois valores e retorna o menor deles, ou guardar dois valores em variáveis auxiliares e imprimir o menor usando ifs.

Clique aqui para ver o código completo.

Elevador

Solução escrita por Levi Oliveira

Conhecimento necessário:

Seja $$N$$ o número de elevadores e $$A_1, A_2, A_3, \dots, A_n$$ os andares pelos quais temos que passar. Inicialmente, note que demoramos 1 segundo para percorrer 1 andar, então caso percorramos $$k$$ andares, demoraremos $$k$$ segundos para realizar tal façanha.

Agora suponha que estamos no andar $$A_i$$ e que queremos ir pro andar $$A_{i+1}$$.

Se $$A_i < A_{i+1}$$, nós precisaremos subir andares. A quantidade de andares que subiremos será $$A_{i+1} – A_i$$, o que, como vimos, leva $$A_{i+1} – A_i$$, segundos.

Se $$A_i > A_{i+1}$$, nós precisaremos descer andares. A quantidade de andares que desceremos será $$A_i – A_{i+1}$$,  o que, como vimos, leva $$A_i – A_{i+1}$$, segundos.

Note que nos dois casos, a quantidade de andares que nos deslocamos – e portanto a quantidade de tempo que levou – é o módulo de $$A_i – A_{i+1}$$, isso é, o valor positivo. Para computar esse valor, podemos usar a função $$abs(valor)$$ da biblioteca cmath do C++, que retorna o módulo de um valor dado.

Assim, guardamos uma variável resp que guarda o tempo necessário para nos locomovermos entre os andares, e para cada i entre $$0$$ e $$n-2$$ – vetor 0-indexado -, incrementamos em resp $$abs(A_i – A_{i+1})$$

Clique aqui para ver o código completo.

Encontro de Amigas

Solução escrita por Márcio Vitor

Conhecimentos necessários:

Subtarefa 2 – ($$A_1 = A_2$$):

Perceba que a resposta é no máximo 1 pois Ana permanecera apenas 1 dia no Brasil, então basta checar se esse dia esta dentro dos outros dois intervalos de tempo, se sim retorne 1, caso contrario retorne 0.

Para verificar se um tempo x esta dentro de um intervalo $$[L,R]$$ basta checar se $$x >= L$$ e $$x <= R$$.

Subtarefa 3 – (sem restrições adicionais):

Usando as ideias da subtarefa 2, vamos manter um contador $$cnt$$, e iremos iterar pelos possíveis dias $$D$$ de 1 a 31 e ver se ele esta dentro de todos os intervalos que as garotas estarão no Brasil, se sim adicionamos 1, ao final de tudo $$cnt$$ será a resposta.

Clique aqui para ver o código completo.