Donada la classe Llista que permet guardar seqüències d’enters amb una llista doblement encadenada, circular i amb fantasma, cal implementar el mètode
que duplica els elements majors que l’anterior i elimina els elements menors que l’anterior del p.i. El primer element i els iguals a l’anterior no es dupliquen ni s’eliminen.
Cal enviar a jutge.org només la implementació del mètode duplica_majors_elimina_menors. La classe Llista té la següent especificació:
Per testejar la solució, jutge.org ja té implementats la resta de mètodes de la classe Llista i un programa principal que processa línies d’enters amb els que crea llistes i desprès crida el mètode duplica_majors_elimina_menors.
Entrada
L’entrada conté vàries línies formades per seqüències d’enters. Cadascuna d’elles són els elements que tindrà cada llista.
Sortida
Per a cada línia d’entrada, escriu una línia amb el resultat desprès d’haver duplicat els elements majors que l’anterior i eliminat els elements menors que l’anterior: El nombre d’elements de la llista seguit d’un espai, els elements de la llista entre claudàtors i separats per espais, i finalment aquests mateixos elements però amb ordre invers, també entre claudàtors i separats per espais.
Observació
Cal enviar la solució (el fitxer solution.cpp) comprimida en un fitxer .tar:
tar cvf solution.tar solution.cpp
Només cal enviar la implementació del mètode duplica_majors_elimina_menors. Segueix estrictament la definició de la classe de l’enunciat.
Input
2 5 3 4 1 1
Output
6 [2 5 5 4 4 1] [1 4 4 5 5 2]
Input
0 2 3 4 6 9 0 2 3 3 6 9 0 2 3 3 3 9 0 2 3 3 3 3
Output
11 [0 2 2 3 3 4 4 6 6 9 9] [9 9 6 6 4 4 3 3 2 2 0] 10 [0 2 2 3 3 3 6 6 9 9] [9 9 6 6 3 3 3 2 2 0] 9 [0 2 2 3 3 3 3 9 9] [9 9 3 3 3 3 2 2 0] 8 [0 2 2 3 3 3 3 3] [3 3 3 3 3 2 2 0]
Input
9 8 7 4 3 1 9 8 7 7 3 1 9 8 7 7 7 1 9 8 7 7 7 7
Output
1 [9] [9] 2 [9 7] [7 9] 3 [9 7 7] [7 7 9] 4 [9 7 7 7] [7 7 7 9]
Input
Output
0 [] []
Input
3 -3
Output
1 [3] [3] 1 [-3] [-3]
Input
0 1 0 -1 0 0
Output
3 [0 1 1] [1 1 0] 1 [0] [0] 2 [0 0] [0 0]