Guide for Llistat d'alumnes
Com abordar aquest problema
Se't donen les notes de N alumnes (nom, nota del primer parcial i nota del segon parcial), i has \ de trobar dos alumnes concrets: un segons la seva posició ordenant pel segon parcial, i un altre \ segons la seva posició ordenant per la nota final.
Idea general:
- Llegeix N i després les N línies, guardant per a cada alumne el seu nom i les dues notes.
- Calcula la nota final de cada alumne (un 40% de la nota del primer parcial i un 60% de la \ del segon parcial).
- Llegeix els dos números P1 i P2 del final de l'entrada.
- Ordena una còpia de la llista d'alumnes pel segon parcial, de més gran a més petit, i queda't \ amb l'alumne que ocupa la posició P1.
- Ordena (una altra còpia de) la llista pel la nota final, de més gran a més petit, i queda't amb \ l'alumne que ocupa la posició P2.
- Escriu les dues línies de sortida amb el format demanat (nom, parcial1, parcial2, nota final).
Paranys habituals:
- Les posicions P1 i P2 són 1-indexades (la posició 1 és la primera), mentre que els índexs de \ llistes en programació solen començar a 0.
- Cal ordenar l'alumne sencer (nom + notes juntes), no cada columna per separat, si no perdràs la \ relació entre el nom i les seves notes.
- Compte amb el format de sortida dels decimals de la nota final.
Pista per a Python
Pots guardar cada alumne com una tupla (nom, parcial1, parcial2, final) dins d'una llista, i fer \
servir sorted(..., key=..., reverse=True) per ordenar-la de dues maneres diferents:
n = int(input())
alumnes = []
for _ in range(n):
dades = input().split()
nom = dades[0]
p1 = float(dades[1])
p2 = float(dades[2])
final = 0.4 * p1 + 0.6 * p2
alumnes.append((nom, p1, p2, final))
pos1, pos2 = input().split()
pos1, pos2 = int(pos1), int(pos2)
per_segon_parcial = sorted(alumnes, key=lambda a: a[2], reverse=True)
per_nota_final = sorted(alumnes, key=lambda a: a[3], reverse=True)
alumne1 = per_segon_parcial[pos1 - 1]
alumne2 = per_nota_final[pos2 - 1]
print(f"{alumne1[0]} {alumne1[1]} {alumne1[2]} {alumne1[3]:.2f}")
print(f"{alumne2[0]} {alumne2[1]} {alumne2[2]} {alumne2[3]:.2f}")