Problem hidden
This problem was hidden by Editorial Board member probably because it has incorrect language version or invalid test data, or description of the problem is not clear.

EDUPT07 - Copa do mundo

A Copa do Mundo FIFA de 2022 está chegando. O país inteiro se prepara para torcer para a equipe canarinho conquistar mais um título.

Na Copa do Mundo, depois de uma fase de grupos, um número par de equipes disputa a Fase Final, composta de quinze jogos eliminatórios. A figura abaixo mostra a tabela de jogos da Fase Final:


Por exemplo, na tabela a seguir, as 16 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 todos os 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.

Saiba que uma partida nunca termina em empate. Um time sempre termina com mais gols que outro, seja por prorrogação ou pênaltis.

Faça um programa que simule a Fase Final da Copa do Mundo.

Sugere-se que, para facilitar seu desenvolvimento, siga os passos a seguir:

  • Crie um registro (estrutura) chamada time, que contenha os seguintes campos:

char caracter;  //caracter que representa o time. A caracter vai de A a P

char nome[30];   //nome do time (país). Por exemplo: BRASIL.

int  continente;   //Continente do país. 1: AMERICA; 2: EUROPA; 3: AFRICA; 4: ASIA; 5: OCEANIA.

int qtde_partidas;   //quantidade de partidas realizadas na Fase Final. De 1 a 4.

int gols_a_favor;   //todos os gols realizados pela equipe na Fase Final.

int gols_contra;    //todos os gols que a equipe sofreu na Fase Final.

int saldo_gols;    // gols a favor – gols contra na Fase Final.


  • Crie um registro (estrutura) chamada partida, que contenha os seguintes campos:

int código;   //código da partida. Por exemplo: 3, significa a partida entre E e F nas oitavas de final.

char time1;  //caracter do time 1. Por exemplo E.

char time2;  //caracter do time 2. Por exemplo F.

int gols_time1;   //a quantidade de gols que o time 1 realizou na partida.

int gols_time2;   //a quantidade de gols que o time 2 realizou na partida.


  • Faça a criação e alocação dinâmica (no momento que achar conveniente) de um vetor para os times e outro para as partidas. As informações de tamanho do vetor estão descritas nas entradas como se descreve nos próximos itens.


  • Crie uma função que receba um vetor que represente os times do campeonato e o tamanho do vetor. Esta função deverá ler os dados do time (caracter, nome, continente) e armazenar os valores no vetor. E também inicializar os campos quantidade de partidas e referentes aos gols.

void ReceberTimes(time VetorTimes[], int tamanho);

 

  • Crie uma função receba um vetor que represente as partidas do campeonato e o tamanho do vetor. Esta função deverá ler os dados da partida e armazenar os valores no vetor. Ao receber os dados da partida, você deverá atualizar os dados do time. Por exemplo, após a partida de código 1, você deverá localizar os times A e B no vetor de times e atualizar os campos: qtde_partidas, gols_a_favor, gols_contra, saldo_gols.

 void ReceberPartidas(partida VetorPartidas[], int tam_part,time VetorTimes[], int tam_times);

 

 Ao receber os dados da partida, você deverá atualizar os dados do time. Por exemplo, após a partida de código 1, você deverá localizar os times A e B no vetor de times e atualizar os campos: qtde_partidas, gols_a_favor, gols_contra, saldo_gols.


  • Crie uma função que receba um vetor que represente os times do campeonato e o tamanho do vetor. Esta função deverá retornar o time com maior saldo de gols. 

time MelhorSaldoGols(time VetorTimes[], int tamanho);


  • Crie uma função que receba um vetor que represente os times do campeonato e o tamanho do vetor. Esta função deverá retornar o time com pior saldo de gols.

time PiorSaldoGols(time VetorTimes[], int tamanho);


  • Crie uma função que receba dois vetores: um que represente as partidas e outro que represente os times e seus respectivos tamanhos; e um continente. Esta função deverá retornar o time melhor classificado do continente, ou seja, quem disputou mais partidas na Fase Final. Caso haja empate, os critérios de desempate são: saldo de gols; e gols a favor (critérios válidos para qualquer caso de empate do programa)

time MelhorClassificadoContinente(partida VetorPartidas[], int tam_part, time VetorTimes[], int tam_times, int continente);


  • Ao final, a saída deverá apresentar a caracter correspondente aos: time com melhor saldo de gols, time com pior saldo de gols, time melhor classificado de cada continente (sempre haverá o times de todos continentes)

 

Entrada:

Inicialmente é informado o número n de times (múltiplo de 8 entre 8 e 40), seguido das informações de cada time: caracter que o representa, nome (até 30 caracteres), número do continente do time(1: AMERICA, 2: EUROPA, 3: AFRICA, 4: ASIA, 5: OCEANIA). Segue-se o número m de partidas seguido dos dados de m partidas, a saber: código da partida (1 e 40), caracter do time 1, caracter do time 2, número de gols do time 1, número de gols do time 2

 

Saida: 

Primeira linha apresenta a caracter correspondente ao time com melhor saldo de gols.

A linha seguinte, apresenta a caracter correspondente ao time com pior saldo de gols.

As 5 linhas seguintes apresentam o número de um continente (1 a 5) seguido da a caracter correspondente ao time melhor classificado de cada continente

 

 

Exemplo completo de entrada


 

Exemplo completo de saída

8

A

BRASIL

1

B

FRANCA

2

C

JAPAO

4

D

SENEGAL

3

E

AUSTRALIA

5

F

ARGENTINA

1

G

ALEMANHA

2

H

INGLATERRA

2

7

1

A

B

3

1

2

C

D

2

3

3

E

F

7

1

4

G

H

0

1

5

A

D

2

3

6

E

H

3

1

7

D

E

1

2

E

F

1:A

2:H

3:D

4:C

5:E

 

 


Added by:IFTM_Maratona
Date:2022-09-08
Time limit:5s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:C CPP
Resource:Adaptado de Ernani Melo

© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.