Soptyfive Wrapped

Soptyfive és una plataforma mundialment coneguda per escoltar música en streaming. Tu treballes al seu Departament de Dades i, com cada any, toca oferir als usuaris un resum de les cançons i artistes que més han escoltat. Per fer el resum (també conegut com a Soptyfive Wrapped) et demanen poder veure tres mètriques:

Considerem que l’artista més escoltat és aquell que ha estat escoltat durant més temps i considerarem la cançó més escoltada és aquella que ha estat escoltada més vegades (independentment de la seva duració).

Entrada

Considereu que l’entrada és un únic cas per un sol usuari. Aquesta consisteix en un enter nn seguit d’una seqüència d’nn cançons, representades pel nom de la cançó, l’autor, el nombre de cops que l’usuari l’ha escoltat durant l’any, i la durada de la cançó (en segons). Per simplificar, els noms de les cançons i artistes no contenen espais. Després de les cançons poden venir entre una i tres línies amb un text indicant quina mètrica es vol veure:

Podeu assumir que sempre hi ha 5 o més cançons diferents, i 5 o més artistes diferents a l’entrada.

Sortida

La sortida del programa ha de ser fins a tres línies indicant quants minuts de música ha escoltat l’usuari, els 5 artistes més escoltats i les 5 cançons més escoltades. Seguiu el patró de la mostra, i recordeu calcular només les mètriques que es demanen.

Observació

L’ordre de les 5 cançons i artistes va en funció d’una mètrica numèrica, en cas d’empat, utilitzeu l’ordre lexicogràfic.

Definiu una estructura Song per desar les cançons que es llegeixen i tres funcions per obtenir la sortida que es demana. Les funcions poden ser així:

def sum_minutes(songs: list[Song]) -> int:
    """
    Calcula quants minuts s'han escoltat en total, 
    donada una llista de cançons.
    """

def compute_top_artists(songs: list[Song]) -> list[str]:
    """
    Calcula els 5 artistes més escoltats dins la llista de cançons.    
    Precondició: hi ha 5 o més artistes diferents.
    """

def compute_top_songs(songs: list[Song]) -> list[str]:
    """
    Calcula les 5 cançons que més cops s'han escoltat de la llista de cançons.
    Precondició: hi ha 5 o més cançons diferents.
    """

El Jutge dóna puntuacions parcials indicatives per a cada funció i per als jocs de proves públics, però l’avaluació va a càrrec del professor.

Informació del problema

Autoria: Jordi Puig

Generació: 2026-01-25T11:21:14.556Z

© Jutge.org, 2006–2026.
https://jutge.org