DESAFIO 32
[Da OBI, 2019, nível 1, fase 1] Dona Mônica é mãe de três filhos que têm idades diferentes. Ela notou que, neste ano, a soma das idades dos seus três filhos é igual à idade dela. Neste problema, dada a idade de dona Mônica e as idades de dois dos filhos, seu programa deve computar e imprimir a idade do filho mais velho.
Por exemplo, se sabemos que dona Mônica tem 52 anos e as idades conhecidas de dois dos filhos são 14 e 18 anos, então a idade do outro filho, que não era conhecida, tem que ser 20 anos, pois a soma das três idades tem que ser 52. Portanto, a idade do filho mais velho é 20 . Em mais um exemplo, se dona Mônica tem 47 anos e as idades de dois dos filhos são 21 e 9 anos, então o outro filho tem que ter 17 anos e, portanto, a idade do filho mais velho é 21.
Entrada: a primeira linha da entrada contém um inteiro M representando a idade de dona Mônica. A segunda linha da entrada contém um inteiro A representando a idade de um dos filhos. A terceira linha da entrada contém um inteiro
representando a idade de outro filho.
Saída: seu programa deve imprimir uma linha, contendo um número inteiro, representando a idade do filho mais velho de dona Mônica.
Restrições:
Exemplos: Entrada 521418 Saída 20
Exemplos: Entrada 521418 Saída 20
Passo 1
O enunciado nos dá as seguintes informações e pede uma coisa simples de enunciar:
- Idade de dona Mônica:
. - Idade de um dos filhos:
. - Idade de outro filho:
. - Sabemos que a soma das idades dos três filhos é igual à idade de dona Mônica.
- Queremos imprimir a idade do filho mais velho (ou seja, a maior entre as três idades dos filhos).
No exemplo dado na própria declaração temos os valores (peguei esses números do enunciado):
,
e
.
Condições relevantes (fornecidas pelo enunciado): ,
,
e
.
Condições relevantes (fornecidas pelo enunciado):
Passo 2
Entendimento da relação que resolve o problema: como a soma das idades dos três filhos é igual à idade de dona Mônica, se chamarmos a idade do terceiro filho de
, então vale a igualdade
Essa é a equação que conecta as quatro variáveis. Pelo enunciado queremos achar o filho mais velho, isto é, o maior entre
,
e
.
Passo 3
Isolando
na equação acima temos a fórmula direta para calcular a idade do filho desconhecido:
Explicando passo a passo: subtrai-se de
primeiro
e depois
(a ordem das subtrações não altera o resultado final, pois subtração sequencial é associativa nesse contexto).
Passo 4
Vou aplicar a fórmula ao exemplo numérico do enunciado (peguei os números do enunciado:
,
,
):
Calcule primeiro :
Calcule primeiro
Agora calcule
:
Portanto, pelo cálculo,
.
Passo 5
Agora precisamos descobrir qual é o filho mais velho, ou seja, qual é o maior entre
,
e
. Uma maneira sistemática (que dá para fazer rápido numa prova) é comparar par a par:
- Compare
e : com e , temos , então por enquanto o maior entre esses dois é . - Compare esse maior (
) com : temos , então o maior entre os três é .
Em notação compacta usamos a função máximo:
Aplicando aos números:
Passo 6
Verificação rápida das condições:
é menor que
(o que faz sentido para idade de filho), e
é diferente de
e de
conforme a restrição de idades distintas do enunciado. Tudo consistente.
Passo 7
Resumo do algoritmo que você pode usar na prova (sem calculadora complicada):
- Leia
, , . - Calcule
(faça duas subtrações simples). - Compare
, e para achar o maior (duas comparações bastam). - Imprima esse maior.