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 a partir d’una llista l2 buida, separa els elements del paràmetre implícit quedant al paràmetre implícit els elements menors a x i a l2 els elements majors a x amb el mateix ordre.
Cal enviar a jutge.org només la implementació del mètode separa. 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, llegeix un enter i desprès crida el mètode separa.
Entrada
L’entrada conté vàris parells de línies: La primera línia de cada parell conté una seqüència d’enters amb els elements que tindrà la llista i la segona línia conté un enter amb el valor x a usar per separar la llista.
Sortida
Per a cada parell de línies d’entrada, escriu dues línies amb el resultat desprès d’haver separat els elements menors a x i els majors a x: Per cada llista s’escriu 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 separa. Seguiu estrictament la definició de la classe de l’enunciat.
Input
3 -6 8 0 4 -2 0 1 3 -6 8 0 4 -2 0 0 5 5 5 6 5 4 1 9 7 9
Output
4 [-6 0 -2 0] [0 -2 0 -6] 3 [3 8 4] [4 8 3] 2 [-6 -2] [-2 -6] 3 [3 8 4] [4 8 3] 0 [] [] 0 [] [] 1 [5] [5] 0 [] [] 0 [] [] 1 [5] [5] 0 [] [] 0 [] [] 1 [7] [7] 0 [] []