Comentário por Rogério Júnior
Para ver o caderno de tarefas da primeira fase da Programação Nível Júnior da OBI 2017, clique aqui.
Bondinho
Conhecimento prévio necessário:
O problema tem um enunciado extremamente simples: a entrada nos fornece a quantidade de alunos A e a de monitores M, e nos pergunta se a soma delas não ultrapassa 50. Ou seja, basta lermos os valores de A e M e usarmos um if para checarmos se a soma A+M é menor ou igual a 50. Se ela for, imprimimos o caractere ‘S’, caso contrário, imprimimos o caractere ‘N’. Segue o código para melhor entendimento:
https://gist.github.com/rogerioagjr/b515da6e17686cf61af803e2954d768a
Drone de Entrega
Conhecimento prévio necessário:
Para descobrir se um cubo de dimensões A, B e C consegue passar por uma janela de dimensões H e L, basta testarmos todas as maneiras possíveis de se tentar isso. Primeiramente, devemos escolher qual a face do cubo que terá os lados paralelos aos da janela, pois são esses os que precisam caber nela, enquanto o outro, a profundidade do cubo, não interfere na capacidade de o cubo passar. Temos três maneiras de escolher isso: ou usamos uma face de dimensão AxB, ou uma de dimensão BxC, ou uma de dimensão AxC. Olhando agora para a face AxB, por exemplo, temos duas maneiras de tentar fazer o cubo passar. Se A for a altura e B a largura, basta checarmos se esses comprimentos não ultrapassam essas dimensões da janela, ou seja, se A<=H e B<=L. Entretanto, podemos girar o cubo em 90 graus, e então B se torna a altura e A a largura, então devemos checar se A<=L e B<=H. Deste modo, para cada um dos 3 tipos de faces que podemos escolher, temos 2 possibilidades (em pé ou deitado), o que gera 6 maneiras, no total, de tentarmos fazer o cubo passar. Basta testarmos cada uma delas com um if e, se pelo menos uma funcionar, o cubo passa. Basta usarmos os operadores and e or e parênteses para deixar claro ao computador qual a ordem de precedência das operações lógicas que ele deve realizar. Segue o código para melhor entendimento:
https://gist.github.com/rogerioagjr/fdf63bebb590c1faf0a0a9835c18fcf0
