Agora vamos de "Vice-Campeão"! Um exercício muito fácil e bom para quem está começando na programação! Esse exercício está categorizado como ad-hoc.
Plataforma: Beecrowd (antiga URI)
A OBI (Organização de Bocha Internacional) é responsável por organizar a competição mundial de bocha. Infelizmente esse esporte não é muito popular, e numa tentativa de aumentar a sua popularidade, ficou decidido que seriam chamados, para a Grande Final Mundial, o campeão e o vice-campeão de cada sede nacional, ao invés de apenas o primeiro lugar.
Tumbólia é um país pequeno que já havia realizado a sua competição nacional quando a nova regra foi instituída, e o comitê local não armazenou quem foi o segundo classificado. Felizmente eles armazenaram a pontuação de todos competidores – que foram apenas três, devido ao tamanho diminuto do país. Sabe-se também que as pontuações de todos jogadores foram diferentes, de forma que não ocorreu empate entre nenhum deles.
Resta agora descobrir quem foi o vice-campeão e para isso o comitê precisa de ajuda.
Linguagens: C, C++ e Haskell
Solução:
A solução é simples, basta ler os três valores e identificar qual é o segundo maior.
Código em C++:
#include <iostream>
int main() {
int a, b, c, resposta;
std::cin >> a >> b >> c;
resposta = a;
if (a >= b && a >= c) {
if (b >= c)
resposta = b;
else
resposta = c;
}
else if (b >= a && b >= c) {
if (c >= a)
resposta = c;
}
else if (c >= a && c >= b) {
if (b >= a)
resposta = b;
}
std::cout << resposta << std::endl;
return 0;
}
Código em C:
Em C, li os valores e por meio de estruturas condicionais avaliei quem é o segundo maior valor, colocando ele numa variável chamada resposta. Assim, no fim basta imprimir esta variável.
#include <stdio.h>
int main() {
int a, b, c, resposta;
scanf("%d %d %d", &a, &b, &c);
resposta = a;
if (a >= b && a >= c) {
if (b >= c)
resposta = b;
else
resposta = c;
}
else if (b >= a && b >= c) {
if (c >= a)
resposta = c;
}
else if (c >= a && c >= b) {
if (b >= a)
resposta = b;
}
printf("%d\n", resposta);
return 0;
}
Código em Haskell:
No código Haskell basta ler a linha toda e ordenar os valores com a função sort (disponível em Data.List). Assim, o segundo valor da lista será o vice-campeão, basta imprimir este valor!
import Data.List (sort)
main :: IO ()
main = do
linha <- getLine
let numeros = map read (words linha) :: [Int]
let [ultimo, vice, campeao] = sort numeros
print vice
Chave PIX (chave aleatória) para doações: 6d8bc7a8-5d74-493a-ab7a-3515baf35956
Ajude o blog mais uma vez!
Nenhum comentário:
Postar um comentário