Donada una pila d’enters i un número k >= 1, eliminar els elements que estan a distancia k, 2k, 3k,... del top de la pila. El codi ha d’estar correctament documentat amb el Pre, Post, Hipòtesi d’Inducció i Fita.
void deleteDeep(stack<int> &s, int k); /* Pre: s és una pila d'enters i k >= 1 */ /* Post: la pila s amb els elements k, 2k, 3k... de la pila eliminats */
D’entre els fitxers que s’adjunten a l’exercici també hi ha program.cpp (programa principal) i Makefile per a compilar. Per a pujar la vostra solució, heu de crear el fitxer solution.tar així:
tar cf solution.tar deleteDeep.cpp
Entrada
Com a entrada hi haurà el nombre d’elements que té la pila, una pila d’enters i k >= 1. Observació: el top de la pila està a distància 0 i mai s’elimina
Sortida
Com a sortida es mostrarà la pila original i, a continuació, la pila amb els elements eliminats.
Input
11 5 2 8 4 3 8 5 7 2 6 4 2
Output
4 6 2 7 5 8 3 4 8 2 5 4 6 7 8 4 2
Input
11 5 2 8 4 3 8 5 7 2 6 4 4
Output
4 6 2 7 5 8 3 4 8 2 5 4 6 2 7 8 3 4 2 5
Input
11 5 2 8 4 3 8 5 7 2 6 4 1
Output
4 6 2 7 5 8 3 4 8 2 5 4
Input
2 5 2 1
Output
2 5 2