Un vector R es un vector que está compuesto de dos partes:
tales que la parte y la parte están ordenadas de forma estrictamente creciente pero . Además tenemos . Es decir, ninguna de las dos partes está vacía.
Es necesario implementar la función
void ordena(vector<int>& v, int pos) con la
siguiente especificación:
PRE:
es un vector R como
,
y
es la posición en la que se encuentra
en
.
POST: El vector
está ordenado.
Sólo tiene que enviar la función que le pedimos y las acciones y funciones que vosotros mismos defina. El resto no se tendrá en cuenta.
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.
Por otra parte, si utiliza un vector auxiliar para realizar la ordenación tendrá una penalización de en la corrección manual aunque tenga un semáforo verde.
Un número indeterminado de vectores R con el siguiente formato: un entero que indica su tamaño, después el vector R y finalmente la posición en la que se encuentra . Todo vector R tiene un tamaño mayor o igual a 3.
El vector ordenado.
ENTRADA 1: 15 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 5 SORTIDA 1: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ENTRADA 2: 15 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 13 SORTIDA 2: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ENTRADA 3: 15 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 SORTIDA 3: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ENTRADA 4: 5 12 15 4 7 8 2 SORTIDA 4: 4 7 8 12 15