Natural selection on average X51473


Statement
 

pdf   zip   tar

Given a list of numbers, we say that an element is weak on average if it is smaller than the average of the previous numbers. We consider that, if a list is not empty, the first element is not weak on average. Design an iterative operation that, given a non empty list of double ll, puts in another list the result of extracting from ll the weak elements on average. Use the following specification:

void seleccio(const list<double>& l, list<double>& sel)
/* Pre: l is not empty, sol is empty */
/* Post: sel is the result of extracting from l the elements weak on average */

For example, if list ll is

7  -5   5   6  -2   2   5   1  -1

then list selsel must be

7   5   6   5

and if list ll is

-7  -5   5   6  -2   2   5   1  -1

list selsel must be

-7  -5   5   6   2   5   1

Input

The input is a list of double.

Output

The output is a list like the input one but without the weak on average elements.

Observation

You only have to submit a file that contains the function with the header in the statement as well as any other auxiliary function that you think necessary, without any function main. Also add the includes for any class that you use.

Information
Author
Alberto Moreno (adaptador), Ramon Ferrer i Cancho (responsable)
Language
English
Translator
Original language
Catalan
Other languages
Catalan Spanish
Official solutions
C++
User solutions
C++