Pesquisar este blog

Livros Recomendados

Mostrando postagens com marcador 2376. Mostrar todas as postagens
Mostrando postagens com marcador 2376. Mostrar todas as postagens

segunda-feira, 18 de dezembro de 2023

URI (BEECROWD) - 2376 - World Cup (Copa do Mundo) - Ad-Hoc - C e C++

Hoje o problema solucionado é da categoria ad-hoc, e é o problema "Copa do Mundo". Esse é um problema que envolve estruturas condicionais. Vamos ver como eu resolvi?

Plataforma: Beecrowd (antiga URI)

Problema2376

Enunciado:

Este ano tem Copa do Mundo! O país inteiro se prepara para torcer para a equipe canarinho conquistar mais um título, tornando-se hexacampeã.

Na Copa do Mundo, depois de uma fase de grupos, dezesseis equipes disputam a Fase final, composta de quinze jogos eliminatórios. A figura abaixo mostra a tabela de jogos da Fase final:

Na tabela de jogos, as dezesseis equipes finalistas são representadas por letras maiúsculas (de A a P), e os jogos são numerados de 1 a 15. Por exemplo, o jogo 3 é entre as equipes identificadas por E e F; o vencedor desse jogo enfrentará o vencedor do jogo 4, e o perdedor será eliminado. A equipe que vencer os quatro jogos da Fase final será a campeã (por exemplo, para a equipe K ser campeã ela deve vencer os jogos 6, 11, 14 e 15.

Dados os resultados dos quinze jogos da Fase final, escreva um programa que determine a equipe campeã.

Linguagens: C e C++

Solução:

Nesta solução, a proposta foi basicamente analisar todos os caminhos possíveis com estruturas condicionais, assim sabendo quem foi o vencedor. Os códigos em C e C++ adotam essa mesma estratégia.

Já peço desculpas pela baguncinha do código, não ficou tão bem organizado aqui. Mas jogue numa ferramenta embelezadora e ficará bem legível :)

Código em C++:

#include <iostream>
using namespace std;

int main() {
   int jogos[2][15];
   char resposta = 'P';
   for (int i = 0; i < 15; i++)
      cin >> jogos[0][i] >> jogos[1][i];
      if (jogos[0][14] > jogos[1][14]) {
         if (jogos[0][12] > jogos[1][12]) {
            if (jogos[0][8] > jogos[1][8]) {
               if (jogos[0][0] > jogos[1][0])
                  resposta = 'A';
               else
                  resposta = 'B';
	 }
	 else if (jogos[0][1] > jogos[1][1])
                resposta = 'C';
	      else
	        resposta = 'D';
      }
      else if (jogos[0][9] > jogos[1][9]) {
         if (jogos[0][2] > jogos[1][2])
	    resposta = 'E';
	 else
	    resposta = 'F';
      }
      else if (jogos[0][3] > jogos[1][3])
            resposta = 'G';
	   else
	      resposta = 'H';
   }
   else if (jogos[0][13] > jogos[1][13]) {
      if (jogos[0][10] > jogos[1][10]) {
         if (jogos[0][4] > jogos[1][4])
	    resposta = 'I';
	 else
	    resposta = 'J';
      }
      else if (jogos[0][5] > jogos[1][5])
              resposta = 'K';
	   else
              resposta = 'L';
   }
   else if (jogos[0][11] > jogos[1][11]) {
      if (jogos[0][6] > jogos[1][6])
	 resposta = 'M';
      else
         resposta = 'N';
   }
   else if (jogos[0][7] > jogos[1][7])
         resposta = 'O';
   cout << resposta << endl;
   return 0;
}

Código em C:

#include <stdio.h>

int main() {
   int jogos[2][15], i;
   char resposta = 'P';
   for (i = 0; i < 15; i++)
      scanf("%d %d", &jogos[0][i], &jogos[1][i]);
	if (jogos[0][14] > jogos[1][14]) {
		if (jogos[0][12] > jogos[1][12]) {
			if (jogos[0][8] > jogos[1][8]) {
				if (jogos[0][0] > jogos[1][0])
				resposta = 'A';
				else
					resposta = 'B';
			}
			else if (jogos[0][1] > jogos[1][1])
				resposta = 'C';
			else

			resposta = 'D';
		}
		else if (jogos[0][9] > jogos[1][9]) {
			if (jogos[0][2] > jogos[1][2])
				resposta = 'E';
			else
				resposta = 'F';
		}
		else if (jogos[0][3] > jogos[1][3])
				resposta = 'G';
		else
				resposta = 'H';
	}
	else if (jogos[0][13] > jogos[1][13]) {
		if (jogos[0][10] > jogos[1][10]) {
			if (jogos[0][4] > jogos[1][4])
				resposta = 'I';
			else
				resposta = 'J';
		}
		else if (jogos[0][5] > jogos[1][5])
			resposta = 'K';
		else
			resposta = 'L';
	}
	else if (jogos[0][11] > jogos[1][11]) {
		if (jogos[0][6] > jogos[1][6])
			resposta = 'M';
		else
			resposta = 'N';
	}
	else if (jogos[0][7] > jogos[1][7])
		resposta = 'O';
	printf("%c\n", resposta);
	return 0;
}

Chave PIX para doações: 6d8bc7a8-5d74-493a-ab7a-3515baf35956
Ajude o blog!

Postagem em destaque

URI (BEECROWD) - 2158 - Helping Uncle Cláudio (Ajudando o Tio Cláudio) - Matemática - C, C++ e Haskell

Buenas! Estou aqui mais uma vez para resolver um problema de Matemática! Agora tenho resolvido alguns dessa categoria, pra que vocês possam ...

Postagens mais visitadas