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

Deixe um comentário