Solução Informática Avançado – Semana 57

por

Solução por Sofhia Souza

Para resolver este problema, é necessário conhecimento sobre BIT e struct.

Para que um aluno seja excelente, não pode existir nenhum cara que tenham os 3 valores menores que ele (lembrando que quanto menor o valor da colocação, maior a nota do aluno). Então, verificaremos para cada cara se existe algum aluno que tenha os 3 valores menores que o dele. Faremos isso da seguinte forma:

Guardamos em uma struct as 3 colocações e o indice do aluno. Chamemos as colocações de $$a$$,$$b$$, e $$c$$. Ordenamos o vetor pelas colocações $$a$$. Em seguida, percorremos o vetor e usamos uma BIT para guardarmos o menor valor de $$c$$ que existe em alunos que possuem colocações $$b$$ menores que o meu $$b$$, e caso a menor nota $$c$$ seja maior que o meu $$c$$, significa que eu sou excelente. Segue abaixo o código para melhor entendimento:

https://gist.github.com/sofhiasouza/a1beb7e97f41093172ef20b4128f27f9

Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *