Ordena un Vector V Y80100


Statement
 

pdf   zip   main.cc

thehtml

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

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

tals que x1xn està ordenat de manera escrictament decreixent i y1ym està ordenat de manera escrictament creixent. A més, xn > y1. Finalment tenim que n,m > 0. És a dir, cap de totes dues parts és buida.

Cal implementar la funció

void ordena(const vector<int>& v, int pos, vector<int>& r)

amb la següent especificació:

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

POST: El vector r conté tots els elements del vector v i 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.

IMPORTANT: Només cal que envieu la funció que us demanem i les accions i funcions que vosaltres mateixos definiu. Mantingueu, però, les definicions de tipus i els #includes.

Entrada

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

Sortida

El vector r està ordenat i conté tots els elements de v.

Sample session
ENTRADA 1:
10
20 18 16 2 4 6 8 10 12 14
3

SORTIDA 1:
2 4 6 8 10 12 14 16 18 20



ENTRADA 2:
10
20 2 4 6 8 10 12 14 16 18
1

SORTIDA 2:
2 4 6 8 10 12 14 16 18 20



ENTRADA 3:
10
20 18 16 2 4 6 8 10 12 14
3

SORTIDA 3:
2 4 6 8 10 12 14 16 18 20



ENTRADA 4:
5
14 11 8 2 14
3

SORTIDA 4:
2 8 11 14 14



ENTRADA 5:
10
20 2 4 6 8 10 12 14 16 18
1

SORTIDA 5:
2 4 6 8 10 12 14 16 18 20
Information
Author
PRO1
Language
Catalan
Other languages
English Spanish
Official solutions
C++
User solutions
C++