Mediateca Digital (II) X13635


Statement
 

pdf   zip

html

Una mediateca digital és un program que s’usa per organitzar la música que hi ha a un ordinador. Entre moltes de les seves funcions, l’usuari pot accedir a les característiques d’una cançó, com per exemple: artista, títol, gènere i any. Cal fer un programa que permeti obtindre informació de la mediateca digital.

En concret, un cop les dades de la mediateca digital han sigut llegits pel programa, un gènere (per exemple, Rock) pot ser introduit per llistar totes les cançons que corresponen a aquest gènere, ordenades per artista, any i títol.

Utilitza la següent estructura de programa, que no pot ser canviada:

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

struct Track {
  string artist, title, genre;
  int year;
};

....
....

vector<Track> read_tracks(int n) {
  ....
  ....
}

void print_track(const Track &t) {
  cout << t.artist;
  cout << " (" << t.year;
  cout << ") " << t.title << " (" << t.genre << ")" << endl;
}

int main() {
  ....
  ....
}

Punts examen: 2.5 Part automàtica: 0%

Entrada

L’entrada consisteix en un nombre n ≥ 0 seguit de n cançons, cadascuna descrita amb tres strings (artista, títol i gènere) i un enter (any). Després ve una llista d’strings (gèneres).

Sortida

Per cada gènere a l’entrada, llistar totes les cançons d’aquest gènere ordenades per artista, i dins del mateix artista, per any i finalment per títol. Segueix el format dels jocs de proves.

Public test cases
  • Input

    20
    The_Rolling_Stones Start_Me_Up Rock 1981
    The_Rolling_Stones Miss_You Disco 1978
    The_Rolling_Stones Emotional_Rescue Rock 1980
    The_Rolling_Stones Angie Rock 1973
    The_Rolling_Stones Out_Of_Tears Rock 1994
    The_Rolling_Stones Waiting_On_A_Friend Rock 1981
    The_Rolling_Stones Honky_Tonk_Women Rock  1969
    The_Rolling_Stones Rock_And_A_Hard_Place Rock  1989
    The_Rolling_Stones Undercover_Of_The_Night Rock  1983
    The_Rolling_Stones Satisfaction Rock  1965
    The_Beatles Twist_And_Shout Rock  1964
    The_Beatles Hey_Jude Pop  1968
    The_Beatles Got_To_Get_You_Into_My_Life Rock  1966
    The_Beatles Roll_Over_Beethoven Rock 1964
    The_Beatles She_Loves_You Pop 1963
    The_Beatles I_Want_To_Hold_Your_Hand Pop 1963
    The_Beatles Let_It_Be Pop 1970
    The_Beatles Love_Me_Do Pop 1962
    The_Beatles Help Pop 1965
    The_Beatles A_Hard_Day's_Night Pop 1964
    Swing
    Pop
    Rock
    

    Output

    The_Beatles (1962) Love_Me_Do (Pop)
    The_Beatles (1963) I_Want_To_Hold_Your_Hand (Pop)
    The_Beatles (1963) She_Loves_You (Pop)
    The_Beatles (1964) A_Hard_Day's_Night (Pop)
    The_Beatles (1965) Help (Pop)
    The_Beatles (1968) Hey_Jude (Pop)
    The_Beatles (1970) Let_It_Be (Pop)
    The_Beatles (1964) Roll_Over_Beethoven (Rock)
    The_Beatles (1964) Twist_And_Shout (Rock)
    The_Beatles (1966) Got_To_Get_You_Into_My_Life (Rock)
    The_Rolling_Stones (1965) Satisfaction (Rock)
    The_Rolling_Stones (1969) Honky_Tonk_Women (Rock)
    The_Rolling_Stones (1973) Angie (Rock)
    The_Rolling_Stones (1980) Emotional_Rescue (Rock)
    The_Rolling_Stones (1981) Start_Me_Up (Rock)
    The_Rolling_Stones (1981) Waiting_On_A_Friend (Rock)
    The_Rolling_Stones (1983) Undercover_Of_The_Night (Rock)
    The_Rolling_Stones (1989) Rock_And_A_Hard_Place (Rock)
    The_Rolling_Stones (1994) Out_Of_Tears (Rock)
    
  • Information
    Author
    Language
    Catalan
    Other languages
    English Spanish
    Official solutions
    C++
    User solutions
    C++