Questão da OBI (Olimpíada Brasileira de Informática) de 2012, Fase 1, Nível 1.
A 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.
Entrada
A primeira e única linha da entrada consiste de três inteiros separados por espaços, A, B e C, as pontuações dos 3 competidores.
Saída
Imprima uma única linha na saída, contendo apenas um número inteiro, a pontuação do vice-campeão.
Restrições
- 1 ≤ A ≤ 100
- 1 ≤ B ≤ 100
- 1 ≤ C ≤ 100
Exemplos
| Entrada
4 5 6 |
Saída
5 |
| Entrada
10 5 9 |
Saída
9 |
A questão pode ser acessada através do link: http://olimpiada.ic.unicamp.br/pratique/programacao/nivel1/2012f1p1_vice
Nesse link também existe a opção de testar o algoritmo desenvolvido e ver automaticamente se o algoritmo está correto (botão “Submete solução”). Entre as linguagens de programação disponível está Python, que é linguagem utilizada na codificação presente no vídeo.
Algoritmo em Python
#faz a leitura dos valores - leitura em uma linha
entrada = raw_input()
p1, p2, p3 = entrada.split()
p1 = int(p1)
p2 = int(p2)
p3 = int(p3)
#realiza os testes necessarios para estabelecer o segundo maior valor
if (p1 > p2 and p1 < p3) or (p1 > p3 and p1 < p2):
print p1
elif (p2 > p1 and p2 < p3) or (p2 > p3 and p2 < p1):
print p2
else:
print p3
Vídeo da resolução em Python
Resolução em C++
#include <iostream>
using namespace std;
int main() {
int p1, p2, p3;
//leitura dos 3 valores
cin >> p1 >> p2 >> p3;
//realiza os testes necessários para estabelecer o segundo maior valor
if ( (p1 > p2 && p1 < p3) || (p1 > p3 && p1 < p2) ) {
cout << p1;
} else if ( (p2 > p1 && p2 < p3) || (p2 > p3 && p2 < p1) ) {
cout << p2;
} else {
cout << p3;
}
return 0;
}
Experimente esse código em: http://ideone.com/JHWmWu