(3) Nas aulas de educação física, os alunos se dividem em times para jogar partidas alternadamente. A seleção ocorre da seguinte forma:
  • Define-se a quantidade de times a serem formados.
  • Os alunos são distribuídos de forma alternada entre os times, garantindo uma divisão equilibrada.
A entrada contém um número inteiro N , representando a quantidade de alunos, seguido de um número inteiro T , representando o número de times a serem formados. Nas próximas N linhas, cada linha contém um nome de aluno e um número inteiro H , que representa o nível de habilidade do aluno.
Para cada time, será exibido o termo “Time X”, onde X representa o número do time (1 para o primeiro, 2 para o segundo, e assim por diante). Em seguida, serão listados os nomes dos jogadores pertencentes a esse time. Ao final some as habilidades e retorne qual time é mais forte. Use map na resolução da questão.

Exemplo de entrada:

Entre com a quantidade de alunos: 8
Entre com a quantidade de times: 3
Entre com os alunos o nível de habilidade:
Alice 90
Bruno 85
Carlos 92
Daniel 88
Eduarda 80
Fernanda 95
Gabriel 87
Helena 93

Exemplo de saída:

Time 1
Alice
Daniel
Gabriel
Soma das habilidades: 265
Time 2
Bruno
Eduarda
Helena
Soma das habilidades: 258
Time 3
Carlos
Fernanda
Soma das habilidades: 187
O time mais forte é o Time 1 com 265 pontos.

Passo 1

Beleza, olha só o que a questão pede:
– Temos N alunos, cada um com um nome e um nível de habilidade H.
– Vamos formar T times distribuindo os alunos “alternadamente” (tipo, 1º vai pro time 1, 2º pro time 2, …, T+1 de novo pro time 1, e por aí vai).
– Depois, pra cada time, a gente lista os nomes, soma as habilidades e diz qual time ficou mais forte (o com maior soma).
Conteúdo envolvido: indexação modular (pra distribuir alternado), estruturas de lista, função map (pra aplicar algo em cada elemento) e soma. Vou mostrar tudinho passo a passo, sem pular teoria.

Passo 2

Primeiro a gente lê e armazena:
  1. N (quantidade de alunos)
  2. T (quantidade de times)
  3. Para cada um dos N alunos, armazenar tuplas (nome, habilidade) numa lista alunos.
    Isso é só input e vai servir de base pra distribuir.

Passo 3

Agora a distribuição alternada:
– Cria T listas vazias de nomes e T listas vazias de habilidades, tipo
times_nomes = [[], [], …, []]
times_habs = [[], [], …, []] (cada uma com T sublistas)
– Para o aluno de índice i (começando de i=0), a gente calcula
índice_do_time = i mod T
ou em LaTeX:
timeidx = i bmod T
– Aí coloca o nome em times_nomes[time_idx] e a habilidade em times_habs[time_idx].
Isso garante a “alternância” certinha.

Passo 4

Chegou a hora de somar as habilidades de cada time usando map. Por exemplo, pro time k:
– Pegamos a lista times_habs[k], que é tipo [H_1, H_2, …, H_m].
– Aplicamos um map só pra converter (caso viesse string) ou deixar como está, e fazemos a soma:
Sk = sumh in timeshabs[k] h
Em código Python seria algo como S_k = sum(map(int, times_habs[k])).
Faz isso para todo k de 0 até T−1.

Passo 5

Pra descobrir qual time é mais forte, a gente pega todos os pares (k, S_k) e acha aquele com o maior S_k. Em Python dá pra usar:
idx_max = max(range(T), key=lambda k: S_k_list[k])
ou simplesmente vasculhar com um laço comparando as somas.
O resultado é o índice do time mais forte e o valor da soma.

Resposta

O time mais forte é o Time 1 com 265 pontos.

Exercícios relacionados