Ordena un Vector R S98018


Statement
 

pdf   zip   main.cc

thehtml

Un vector R és un vector que està compost de dues parts:

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

tals que la part x1xn i la part y1ym estan ordenades de manera estrictament creixent però ym < x1. A més tenim que n,m > 0. És a dir, cap de totes dues parts és buida.

Cal implementar la funció void ordena(vector<int>& v, int pos) amb la següent especificació:

PRE: v és un vector R tal que ∣ v ∣ ≥ 3, i pos és la posició en què es troba y1 a v.

POST: El vector v està ordenat.

Observació

Només cal que envieu la funció que us demanem i les accions i funcions que vosaltres mateixos definiu. La resta no es tindrà en compte.

No es pot fer servir l’operació sort de la biblioteca stl.

Pista: saber la posició en què es troba y1 us pot ajudar a ordenar el vector en temps lineal.

Per altra banda, si feu servir un vector auxiliar per a fer l’ordenació tindreu una penalització de −5 a la correció manual encara que tingueu un semàfor verd.

Entrada

Un nombre indeterminat de vectors R amb el següent format: un enter que n’indica la mida, després el vector R i finalment la posició on es troba y1. Tot vector R té una mida més gran o igual a 3.

Sortida

El vector v ordenat.

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
Catalan
Other languages
English Spanish
Official solutions
C++
User solutions
C++