terça-feira, 17 de maio de 2016

[OBI2012] Vice Campeão

A questão, que pode ser lida aqui, é uma questão simples da primeira fase da OBI 2012 que pede, em outras palavras, o segundo maior valor entre três números.

A solução que pensei foi ordenar os três inteiros em ordem crescente e imprimir o número do meio(ou o segundo maior).

Código em C++

#include <cstdio> //scanf,prinft
#include <algorithm> //swap
using namespace std; //com o namespace não é necessário utilizar o "std::" em "std::swap"
int main(){
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
//ordena a sequência {a,b,c} em ordem crescente
//a função swap troca os valores entre duas variáveis
if(a < b) swap(a,b);
if(b < c) swap(b,c);
if(a < b) swap(a,b);
//com a sequência ordenanda, b é o do meio ou o vice
printf("%d",b);
return 0;
}
view raw vice.cpp hosted with ❤ by GitHub
Vale lembrar que existem várias outras abordagens possíveis para resolver esse problema.

Related Posts:

  • [OBI2012] CorridaEsta questão (leia aqui) é facilmente resolvida se pensarmos no problema como uma divisão, onde C é o dividendo, N é o divisor e o resultado pretendid… Read More
  • [OBI2012] ConsecutivosCertamente a questão Consecutivos foi a mais complicada da primeira fase da OBI 2012, apesar de também não exigir nenhum conteúdo mais avançado. Para … Read More
  • [OBI2012] Vice CampeãoA questão, que pode ser lida aqui, é uma questão simples da primeira fase da OBI 2012 que pede, em outras palavras, o segundo maior valor entre três n… Read More