Un vector V es un vector que está compuesto de dos partes:
tales que está ordenado de forma escrita decreciente y está ordenado de forma escrita creciente. Además, . Por último tenemos que . Es decir, ninguna de las dos partes está vacía.
Es necesario implementar la función
void ordena(const vector<int>& v, int pos, vector<int>& r)
con la siguiente especificación:
PRE:
es un vector V como
,
es la posición en la que se encuentra
en
y
.
POST: El vector
contiene todos los elementos del vector
y está ordenado.
Sólo tiene que enviar la función que le pedimos y las acciones y funciones que vosotros mismos defina.
No se puede utilizar la operación sort de la biblioteca
stl.
Pista: saber la posición en la que se encuentra le puede ayudar a ordenar el vector en tiempo lineal.
IMPORTANTE: Sólo hay que enviar la función que se
pide, y quizás otras acciones y funciones necesarias. Hay que mantener,
sin embargo, las definiciones de tipos y los #includes.
Un número indeterminado de vectores V con el siguiente formato: un entero que indica su tamaño, después el vector V, despues la posición en la que se encuentra en y un vector del mismo tamaño que . Todo vector V tiene un tamaño mayor o igual a 3.
El vector está ordenado y contiene todos los elementos de .
ENTRADA 1: 10 20 18 16 2 4 6 8 10 12 14 3 SORTIDA 1: 2 4 6 8 10 12 14 16 18 20 ENTRADA 2: 10 20 2 4 6 8 10 12 14 16 18 1 SORTIDA 2: 2 4 6 8 10 12 14 16 18 20 ENTRADA 3: 10 20 18 16 2 4 6 8 10 12 14 3 SORTIDA 3: 2 4 6 8 10 12 14 16 18 20 ENTRADA 4: 5 14 11 8 2 14 3 SORTIDA 4: 2 8 11 14 14 ENTRADA 5: 10 20 2 4 6 8 10 12 14 16 18 1 SORTIDA 5: 2 4 6 8 10 12 14 16 18 20