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