Donada una cua d’enters i un número k >= 1, eliminar els elements que estan a distància k, 2k, 3k,... del front de la cua. El codi ha d’estar correctament documentat amb el Pre, Post, Hipòtesi d’Inducció i Fita.
void deleteDeep(queue<int> &s, int k); /* Pre: s és una cua d'enters i k >= 1 */ /* Post: la cua s amb els elements k, 2k, 3k... de la cua 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 cua, una cua d’enters i k >= 1. Observació: el front de la cua està a distància 0 i mai s’elimina.
Sortida
Com a sortida es mostrarà la cua original i, a continuació, la cua amb els elements eliminats.
Input
11 5 2 8 4 3 8 5 7 2 6 4 2
Output
5 2 8 4 3 8 5 7 2 6 4 5 2 4 8 7 6
Input
11 5 2 8 4 3 8 5 7 2 6 4 4
Output
5 2 8 4 3 8 5 7 2 6 4 5 2 8 4 8 5 7 6 4
Input
11 5 2 8 4 3 8 5 7 2 6 4 1
Output
5 2 8 4 3 8 5 7 2 6 4 5
Input
2 5 2 1
Output
5 2 5