Una pila quasi-ordenada és una pila (d’enters) que té tots els elements en ordre (el més petit al fons de la pila) llevat de dos elements que estan intercanviats i a més són sempre un a sobre de l’altre a la pila.
Per exemple, la pila
| 9 |
| 7 | <-
| 8 | <-
| 5 |
| 3 |
| 2 |
-----
està quasi-ordenada, ja que té els elements 7 i 8 únicament desordenats.
Feu la funció
void reordenaPila (stack<int> &P)
tal que, donada una pila quasi-ordenada d’enters positius,
retorni la mateixa pila, però ordenada.
Cal tenir en compte que la pila es passa com a paràmentre d’entrada i sortida (per referència).
Entrada
Una pila quasi-ordenada d’enters.
Sortida
La mateixa pila ordenada.
Observació
Heu d’enviar la solució comprimida en un fitxer .tar:
tar cvf program.tar reordenaPila.cpp
Observeu que per compilar us donem el Makefile,
les utilitats d’entrada/sortida de piles a utilitats.hpp,
la capçalera del mòdul funcional reordenaPila.hpp
i el programa principal program.cpp.
Jutge.org també us donarà un semàfor verd si envieu una solució iterativa, però no serà correcte ja que l’enunciat del problema demana que la solució enviada sigui recursiva.
Input
3 4 5 7 6 8 9 10
Output
|10| |9| |8| |7| |6| |5| |4| |3| =
Input
4 5 6 8 7 9 12 15
Output
|15| |12| |9| |8| |7| |6| |5| |4| =