Comentário Noic OBI 2020 - Fase 1 Turno B - Programação Nível Júnior

Comentário por Thiago Mota, Anita Ramos e Leonardo Paes

Para conferir a prova na íntegra, clique aqui.

Relógio de Atleta

Conhecimento prévio necessário:

Iremos utilizar condições if/else para resolver este problema. Basta seguir as condições descritas no problema. Segue o código comentado:

Divisão do Tesouro

Conhecimento prévio necessário:

Esse é um problema bem simples, que pode ser resolvido apenas com leitura, impressão e uma lógica. A lógica funcionará assim: contaremos o capitão como 2 outros marinheiros. Assim, dividiremos o total do tesouro A por N+2 para descobrir quanto cada marinheiro ganhará e depois dobrar o valor para o capitão. Por exemplo, se pensarmos em A=10 e N=8, temos o seguinte:

  • Cada marinheiro deve receber 1
  • O capitão deve receber 2

Perceba que o capitão conta como dois outros marinheiros. Se dividirmos A por 8 + 2(capitão), teremos 1. Por fim, dobramos esse valor para o capitão, ficando com 1 para cada marinheiro e 2 para o capitão.

Na parte da programação então, depois de declarar as variáveis e ler toda a entrada, dividimos A por N+2 e dobramos o valor (x2). Assim, o cálculo geral fica: 2 \cdot (A/(N+2))

Complexidade: O(1).

Segue o código comentado para melhor compreensão da solução:


#include<bits/stdc++.h> //biblioteca utilizada
using namespace std;
int main()
{
int A,N; //declaração de variáveis
scanf("%d", &A); //leitura do 'A'
scanf("%d", &N); //leitura do 'N'
printf("%d", 2*(A/(N+2))); //imprimi a resposta do cálculo de 2*(A/(N+2))
return 0; //retorna a 0
}

view raw

tesouro.cpp

hosted with ❤ by GitHub

Camisetas da Olimpíada

Conhecimento prévio necessário:

Para resolvermos esse problema, basta utilizarmos duas variáveis auxiliares qtdp e qtdm que guardam, respectivamente, a quantidade de camisetas pequenas e a quantidade de camisetas médias escolhidas pelos premiados. Então, basta checarmos se a quantidade de camisetas pequenas produzidas é maior ou igual a qtdp e se a quantidade de camisetas médias produzidas é maior ou igual a qtdm. Se essa condição for verdadeira, todos os premiados serão atendidos com a camiseta do tamanho que escolheram, então imprimimos S, caso contrário, imprimimos N.

Código de exemplo: