Escriviu un programa que simuli el manteniment d’una llista de tasques, a base de llegir instruccions que la van actualitzant, i instruccions que la van consultant. La llista de tasques se suposa inicialment buida, i les instruccions son dels següents tipus: afegir tasques al final de la llista, treure tasques concretes de la llista, donar tasques per fetes, o consultar quins elements estan pendents o quins estan fets començant des del principi de les llistes.
És obligatori utilitzar només el constructor de tipus list com a mecanisme d’emmagatzemament massiu de dades. En particular, no es pot usar ni vector, ni stack, ni queue. Podeu declarar tants list com volgueu i del tipus que volgueu (que no sigui cap altre mecanisme d’emmagatzemament massiu), i podeu usar iteradors sobre llistes.
Entrada
La entrada consisteix en un nombre arbitrari de linies, cadascuna amb una instrucció. Les instruccions poden ser de la següent forma:
add_task finish_task show_pending_tasks show_finished_tasks remove_task
Sortida
La instrucció add_task afegeix una tasca a la llista de tasques pendents, la instrucció finish_task cambia una tasca de la llista de pendents i la afegeix a la llista de tasques fetes, les instriccions show_pending_tasks i show_finished_tasks mostra per pantalla les llistes demanades i, per últim, la instrucció de remove_task esborra una tasca seleccionada en la seva respectiva llista.
Observació
Amb l’objectiu de superar els jocs de proves públics i aconseguir part de la nota, pots enfocar l’exercici fent una implementació senzilla utilitzant vectors de strings en comptes de llistes representades en un list<string>
Input
add_task anar al cinema add_task netejar la casa add_task anar a correr show_pending_tasks finish_task anar a correr show_finished_tasks remove_task netejar la casa show_pending_tasks show_finished_tasks
Output
anar al cinema netejar la casa anar a correr anar a correr anar al cinema anar a correr
Input
add_task sortir amb els amics add_task fer la compra add_task anar de festa add_task entrenar a badminton add_task anar a classe add_task jugar a la pilota add_task fer un examen de prova add_task trucar la meva avia finish_task fer la compra finish_task anar a classe finish_task trucar la meva avia remove_task sortir amb els amics show_pending_tasks show_finished_tasks
Output
anar de festa entrenar a badminton jugar a la pilota fer un examen de prova fer la compra anar a classe trucar la meva avia
Input
add_task fer exercici add_task anar al gimnas add_task jugar a volei finish_task fer exercici finish_task jugar a volei finish_task anar de festa remove_task anar al parc finish_task jugar a volei show_pending_tasks show_finished_tasks remove_task fer exercici show_finished_tasks
Output
task not found task not found task not found anar al gimnas fer exercici jugar a volei jugar a volei
Input
add_task anar al cinema add_task jugar a la pilota add_task anar al parc add_task sortir amb els amics add_task anar de festa add_task anar a classe add_task saltar en paracaigudes add_task anar de viatge finish_task sortir amb els amics remove_task saltar en paracaigudes remove_task anar de viatge finish_task anar a classe finish_task anar al parc show_pending_tasks show_finished_tasks finish_task anar a classe de programacio finish_task fer els deures add_task jugar a la Play show_pending_tasks show_finished_tasks
Output
anar al cinema jugar a la pilota anar de festa sortir amb els amics anar a classe anar al parc task not found task not found anar al cinema jugar a la pilota anar de festa jugar a la Play sortir amb els amics anar a classe anar al parc