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