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.

ALGOUPT26 - Campeonatos de futebol

Em todos campeonatos de futebol, depois de uma fase de grupos, um número par de equipes disputa a Fase Final, composta de  jogos eliminatórios. A figura abaixo mostra a tabela de jogos de uma Fase Final com 16 times:


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 de um campeonato.

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

  • Crie matrizes para representar os dados dos times. Para cada time é preciso guardar:

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; //indica o numero do continente do time

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 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) e armazenar os valores no vetor. E também inicializar os campos quantidade de partidas e referentes aos gols.

void ReceberTimes(char caracterTimes[], char nomeTimes[][], int gols[][4], int qtde_times);

 

  • 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 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. Os dados da partida em si não precisam ser armazenados.

 void ReceberPartidas(char caracterTimes[], char nomeTimes[][], int gols[][4], int qtde_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(char caracterTimes[], char nomeTimes[][], int gols[][4], int qtde_times);


  • 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(char caracterTimes[], char nomeTimes[][], int gols[][4], int qtde_times);


  • Crie uma função que receba 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 no campeonato. 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(char caracterTimes[], char nomeTimes[][], int gols[][4], int qtde_times, int continente);


  • Ao final, a saída deverá apresentar o caracter correspondente aos: time com melhor saldo de gols, time com pior saldo de gols, time melhor classificado de cada continente (sempre haverá  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:2024-06-27
Time limit:1s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:C

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