Ordena un Vector R

Un vector R es un vector que está compuesto de dos partes:

v = x₁ x₂ x₃ x₄…x_(n) y₁ y₂ y₃…y_(m)

tales que la parte x₁…x_(n) y la parte y₁…y_(m) están ordenadas de forma
estrictamente creciente pero y_(m) < x₁. Además tenemos n, m > 0. 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: v es un vector R como ∣ v ∣ ≥ 3, y pos es la posición en la que se
encuentra y₁ en v.

POST: El vector v está ordenado.

Observación

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 y₁ 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 −5 en la corrección manual aunque
tenga un semáforo verde.

Entrada

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 y₁. Todo vector R tiene un tamaño mayor
o igual a 3.

Salida

El vector v ordenado.

Información del problema

Autoría: PRO1

Generación: 2026-01-25T12:49:51.719Z

© Jutge.org, 2006–2026.
https://jutge.org
