OBI 2024 - Fase 1 - Programação Nível 1

Se você quiser se preparar para a OBI, não deixe de conferir o Roteiro de estudos de informática, e também a página de informática do NOIC, com todos nossos materiais.

Ogro

Escrito por Caique Paiva

Conhecimentos Prévios Necessários:

Vamos fazer o que o problema pediu, Crie um if que vê:

  • Caso E  data-recalc-dims= D" />, imprima E+D.
  • Caso contrário, imprima 2(D-E)

Clique aqui para ver o código

Relógio

Escrito por Caique Paiva

Conhecimentos Prévios Necessários:

Primeiro, adicione todos os t segundos em s, e então, enquanto s \ge 60, ou seja, não caber no relógio, tire 60 segundos de s e adicione 1 minuto em M. Feito isso, agora pode acontecer de M \ge 60, então faça o mesmo raciocínio, enquanto M \ge 60 tire 60 minutos de M e adicione 1 hora em H. Terminando, pode acontecer de H \ge 24, então, basta pegar o resto de H por 24.

Clique aqui para ver o código

Concurso

Escrito por João Pedro Castro

Conhecimentos Prévios Necessários:

Quem fez essa questão foi muito generoso, pois existe várias maneiras de resolver ela. A mais comum eu imagino que tenha sido ordenar o vetor de maneira decrescente (maior para o menor), e imprimir a K-ésima posição. Essa é opção mais rápida, e acredito que a maioria tenha resolvido assim (incluindo eu). Mas, eu preferi tratar uma solução alternativa que não usa sort, e ela é bem legal também!

Perceba que para uma nota fixa é fácil checar se ela é uma nota válida ou não (possui no mínimo K candidatos com a nota maior ou igual à ela). A complexidade disso, sem nenhuma otimização com outras técnicas, é O(N). Só que perceba também que 1 \leq A_i \leq 100 pelas restrições do enunciado, ou seja a resposta com certeza é uma dentre 100. Por tanto, tem como você só assumir que a resposta é x, começando com x = 100, e toda vez que der errado você diminui x em 1; e quando der certo você pode encerrar o loop e imprimir x. E em no máximo 100 repetições você consegue uma resposta! Logo a complexidade final seria O(N \cdot 100) ou O(N \cdot max(A_i)) que são iguais no pior caso.

Clique aqui para ver o código