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
, imprima
.
- Caso contrário, imprima
Relógio
Escrito por Caique Paiva
Conhecimentos Prévios Necessários:
Primeiro, adicione todos os segundos em
, e então, enquanto
, ou seja, não caber no relógio, tire
segundos de
e adicione
minuto em
. Feito isso, agora pode acontecer de
, então faça o mesmo raciocínio, enquanto
tire
minutos de
e adicione
hora em
. Terminando, pode acontecer de
, então, basta pegar o resto de
por 24.
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 candidatos com a nota maior ou igual à ela). A complexidade disso, sem nenhuma otimização com outras técnicas, é
. Só que perceba também que
pelas restrições do enunciado, ou seja a resposta com certeza é uma dentre 100. Por tanto, tem como você só assumir que a resposta é
, começando com
, e toda vez que der errado você diminui
em 1; e quando der certo você pode encerrar o loop e imprimir
. E em no máximo 100 repetições você consegue uma resposta! Logo a complexidade final seria
ou
que são iguais no pior caso.
Jogo da vida
Escrito por Caique Paiva
Conhecimentos Prévios Necessários:
Vamos criar duas matrizes, uma chamada que vai ser a original, e outra chamada
, que vai ser a matriz depois de feito uma rodada do jogo. Vamos fazer a seguinte interação
vezes:
- Para cada casinha, veja quem são os vizinhos dele, conte quanto estão vivos e quanto estão mortos, e então, cheque com um if else cada uma das condições. Suponha que estamos vendo a casinha
:
- Se
- Se ele tem
casas vizinhas vivas, então faça
.
- Caso contrário, faça
- Se ele tem
- Caso contrário:
- Se ele tem
ou
vizinhas vivas, faça
.
- Caso contrário, faça
.
- Se ele tem
- Se
- Feito isso, faça
, atualizando a matriz depois de uma rodada, e volte para o começo da interação