Um algoritmo inicia com uma lista ordenada de números e retorna uma lista embaralhada desses números. Durante as repetições do loop do algoritmo, é selecionado um dos números da lista original, que é enviado para o fim da lista embaralhada ou, se a lista embaralhada ainda estiver vazia, o número selecionado é enviado para o início dela. Para retirar um elemento da lista, será usado o código pop(r), que retira o r-ésimo elemento da lista e o coloca na lista embaralhada. Por exemplo, suponha que a lista seja (1, 2, 3, 4, 5) e que a variável r seja igual a 2; o comando pop(r) irá retirar o segundo elemento dessa lista, que no momento é o 2, e irá colocá-lo no início da lista embaralhada, que no momento está vazia. Dessa maneira, a lista passa a ser (1, 3, 4, 5) e a lista embaralhada passa a ser (2). Se r permanecer valendo 2, um novo comando pop(r) irá retirar da lista o elemento 3, que no momento é o segundo da lista, de maneira que a lista passa a ser (1, 4, 5) e a lista embaralhada passa a ser (2, 3). Dadas as variáveis d, D e r, execute o algoritmo:
Inicie a lista como (1, 9, 15, 16, 24, 25, 26)
Repita as instruções entre chaves até que essa lista fique vazia
{
d recebe o número atual de elementos da lista
D recebe a diferença entre 50 e o maior elemento atualmente na lista
r recebe o resto de D dividido por d
aumente o valor de r em 1 unidade
pop(r)
}
Imprima a lista embaralhada
A lista embaralhada impressa foi
(A) (16, 1, 26, 15, 24, 25, 9).
(B) (16, 1, 26, 9, 24, 25, 15).
(C) (16, 1, 26, 15, 25, 24, 9).
(D) (16, 1, 26, 24, 15, 9, 25).
(E) (16, 1, 26, 9, 25, 15, 24).
O objetivo desta questão é executar um algoritmo de embaralhamento e determinar a lista final resultante. A estratégia será simular o loop do algoritmo passo a passo, mantendo o controle do estado das listas e das variáveis, e usar as alternativas a nosso favor para acelerar a solução.
O plano de ataque será o seguinte:
- Análise Inicial e Otimização: Observamos que todas as alternativas começam com a mesma sequência (16, 1, 26). Em vez de simular o algoritmo desde o início, assumimos que esses são os três primeiros elementos da lista embaralhada e removemo-los da lista original, economizando um tempo precioso.
- Primeira Iteração Relevante (4º Elemento): Com a lista original reduzida, executamos a primeira iteração completa do loop:
- Calculamos as variáveis
d(número de elementos restantes) eD(diferença para 50). - Encontramos o resto
rda divisão e o incrementamos em 1. - Usamos o comando
pop(r)para identificar o próximo elemento a ser movido para a lista embaralhada.
- Calculamos as variáveis
- Eliminação de Alternativas: Com o 4º elemento da lista embaralhada descoberto, comparamos nosso resultado com as alternativas restantes e eliminamos aquelas que não correspondem.
- Segunda Iteração e Resposta Final: Executamos o loop mais uma vez para encontrar o 5º elemento. Este passo é decisivo para diferenciar as alternativas que sobraram e nos permite identificar a resposta correta sem a necessidade de executar o algoritmo até o final.
Assista ao vídeo acima para ver a execução detalhada de cada iteração, a lógica por trás da otimização inicial e como usar as alternativas para resolver a questão de forma rápida e estratégica.
📘 Quer ver mais questões como esta resolvidas em vídeo?
Na Apostila gratuita de Matemática para Vestibulares você encontra esta e muitas outras questões organizadas por prova, com links para as resoluções em vídeo.
