Ordena un Vector R S98018


Statement
 

pdf   zip   main.cc

thehtml

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

v = x1  ‍ x2  ‍ x3  ‍ x4 … xn  ‍ y1  ‍ y2 ‍ y3 … ym

tales que la parte x1xn y la parte y1ym están ordenadas de forma estrictamente creciente pero ym < x1. 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 y1 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 y1 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 y1. Todo vector R tiene un tamaño mayor o igual a 3.

Salida

El vector v ordenado.

Sample session
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
Information
Author
PRO1
Language
Spanish
Translator
Original language
Catalan
Other languages
Catalan English
Official solutions
C++
User solutions
C++