Feu la funció recursiva
bool subPila (stack<int> p1, stack<int> p2)
tal que, donades dues piles d’enters,
retorni true
(false
altrament) si la segona pila és una
subpila de la primera pila.
Una pila p2
és una subpila de la pila p1
si la pila p2
és una secció (elements adjacents consecutius)
de la pila p1
.
Una pila buida sempre és subpila de qualsevol altra pila.
| 5 | | 4 | | 2 | .... | 2 | | 3 | .... | 3 | | 3 | .... | 3 | | 10 | .... | 10 | | 2 | .... | 2 | | 9 | ------ | 2 | p2 | 3 | | 4 | | 5 | ------ p1
Entrada
La funció rep dues piles d’enters.
Sortida
true
(false
altrament) si la segona pila és una
subpila de la primera pila.
Observació
Heu d’enviar la solució comprimida en un fitxer .tar:
tar cvf program.tar subPila.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 subPila.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
5 4 3 2 1 8 7 5 4 3 -1 2 1 8 -1
Output
|3| |4| |5| |7| |8| |1| |2| |3| |4| |5| = |8| |1| |2| = sí
Input
5 4 3 2 1 8 7 5 4 3 -1 8 7 4 -1
Output
|3| |4| |5| |7| |8| |1| |2| |3| |4| |5| = |4| |7| |8| = no