A vector V is a vector that is composed of two parts:
such that is ordered in a strictly decreasing manner and is ordered in a strictly increasing manner. Furthermore, . Finally, we have that . That is, neither part is empty.
We need to implement the function
void ordena(const vector<int>& v, int pos, vector<int>& r)
with the following specification:
PRE:
is a vector V such that
,
is the position of
in
and
.
POST: The vector
contains all the elements of the vector
and is sorted.
You only need to send the function we ask for and the actions and functions that you define yourself. The rest will not be taken into account.
The operation sort from the stl library
cannot be used.
Hint: knowing the position of can help you sort the vector in linear time.
IMPORTANT: You only need to submit the requested
function, and possibly other necessary actions and functions. However,
you must keep the type definitions and #includes.
An undetermined number of vectors V with the following format: an integer indicating their size, then the vector V, then the position where is in and finally a vector of the same size as . Every vector V has size greater than or equal to 3.
The vector is sorted and contains all the elements of .
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