Ordena un Vector R S98018


Statement
 

pdf   zip   main.cc

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

v=x1x2x3x4xny1y2y3ymv = x_1 ~ x_2 ~ x_3 ~ x_4 \dots x_n ~ y_1 ~ y_2~ y_3 \dots y_m

tales que la parte x1xnx_1 \dots x_n y la parte y1ymy_1 \dots y_m están ordenadas de forma estrictamente creciente pero ym<x1y_m < x_1. Además tenemos n,m>0n,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: vv es un vector R como v3\mid \! v \! \mid \geq 3, y pospos es la posición en la que se encuentra y1y_1 en vv.

POST: El vector vv 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 y1y_1 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-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 y1y_1. Todo vector R tiene un tamaño mayor o igual a 3.

Salida

El vector vv 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++