Un vector cremallera és un vector de longitud 2n, essent n > 0, tal que els elements estan entrellaçats de la forma
x1, y1, x2, y2, …, xn, yn |
Tant la seqüència d’elements xi com yi són estrictament creixents. És a dir, xi < xi+1 i yi < yi+1, amb 1 ≤ i < n.
Cal implementar la funció ordena_cremallera
amb la següent especificació:
/** * @brief Ordena un vector "cremallera" format per elements * entrellaçats, retornant el vector resultat. * * @returns Un vector amb els elements ordenats de menor a major. * * @pre v = {x_1, y_1, x_2, y_2, ..., x_n, y_n}, n > 0. * x_i < x_{i+1}, y_i < y_{i+1}, per a tot i. */ vector<double> ordena_cremallera(const vector<double>& v);
Observació
Cal enviar la funció ordena_cremallera
, amb #include
s i funcions auxiliars, si cal, però sense main
. Si descarregueu l’arxiu main.cc
de la icona ".CPP", podeu esborrar (o comentar amb /*
i */
) les funcions main
i llegeix_vector
.
Entrada
Una seqüència de vectors cremallera, cadascun en una línia, i amb un enter al principi de la línia indicant-ne la longitud.
Sortida
El vector resultant de la ordenació, en una línia i amb espais entre els elements.
Entrada: 6 1 2 4 3 7 6 Sortida: 1 2 3 4 6 7 Entrada: 4 1 3 2 4 Sortida: 1 2 3 4 Entrada: 10 0 3 1 4 2 5 3 6 4 7 Sortida: 0 1 2 3 3 4 4 5 6 7