Suposa la declaració de la tupla Player:
struct Player {
string first, last; // nom, cognom
int points; // punts
};
que emmagatzema la informació d’un jugador de l’ATP.
Fes una funció ordena amb la capçalera:
void ordena(list<Player>& P, bool by_points);
que permet ordenar els jugadors de més a menys punts (quan by_points és
cert) o per cognoms (quan by_points és fals).
Entrada
L’acció rep una llista de jugadors, possiblement buida.
Sortida
L’acció ha d’ordenar la llista per punts (de més a menys)
si by_points és true i ha d’ordenar per cognoms
si by_points és false.
Observació
La solució d’aquest problema pot tenir més d’una funció.
El programa principal que fa servir el jutge és el següent:
Player p;
list<Player> L;
while (cin >> p.first >> p.last >> p.points) {
L.push_back(p);
}
ordena(L, true);
mostra(L);
ordena(L, false);
mostra(L);
La funció mostra escriu els valors de la llista amb una línia
buida al final.
Input
Roger Federer 8710 Rafael Nadal 10415 Novak Djokovic 13310 David Ferrer 4665 Nicolas Almagro 2070 Andy Murray 7450
Output
Novak Djokovic 13310 Rafael Nadal 10415 Roger Federer 8710 Andy Murray 7450 David Ferrer 4665 Nicolas Almagro 2070 Nicolas Almagro 2070 Novak Djokovic 13310 Roger Federer 8710 David Ferrer 4665 Andy Murray 7450 Rafael Nadal 10415
Input
X C 2000 X B 1000 X A 500
Output
X C 2000 X B 1000 X A 500 X A 500 X B 1000 X C 2000