Simuleu el comportament dels préstecs dels llibres d’una biblioteca: En funció de la seva temàtica, hi ha tipus diferents de llibres (). Inicialment, es tenen piles amb els llibres disponibles de cada tipus. Després, es poden produir dues operacions:
Un lector retorna un llibre: El llibre s’empila a la pila corresponent al seu tipus. Si el tipus donat no estés entre 1 i , la petició s’ignora.
Un lector demana un llibre: Se li deixa el llibre que es troba al cim de la pila del tipus demanat. Si la pila fos buida, o el tipus demanat no estés entre 1 i , la petició s’ignora.
L’entrada comença amb el nombre de tipus
(un natural estrictament positiu). Segueixen
línies amb els llibres de cada tipus, donats des de la base de la pila
fins al seu cim. Cada llibre s’identifica amb el seu títol (una
paraula). Després ve una línia en blanc i una o més peticions, una per
línia: la paraula “RETORN” seguida del títol i del tipus
del llibre retornat (un enter), o bé la paraula “PRESTEC”
seguida del tipus del llibre demanat (un enter).
Escriviu el contingut final de les piles de llibres, des de la base de la pila fins al seu cim, seguint el format de l’exemple.
Els jocs de proves són tals que les piles finals són prou petites per
escriure-les amb un senzill procediment recursiu, si programeu en C++ i
useu el tipus stack.
Input
4 Christine Tales_of_the_grotesque_and_arabesque 2001_:_A_space_odissey Do_androids_dream_of_electric_sheep? The_adventures_of_Sherlock_Holmes Curtain The_murders_in_the_Rue_Morgue PRESTEC 1 PRESTEC 1 RETORN Ten_little_niggers 4 PRESTEC 2 PRESTEC 1 RETORN Tales_of_the_grotesque_and_arabesque 1 PRESTEC 4 RETORN The_Lord_of_the_Rings 3 PRESTEC 4 RETORN Ten_little_niggers 4 RETORN Christine 5 PRESTEC -3 PRESTEC 2
Output
Pila 1: Tales_of_the_grotesque_and_arabesque Pila 2: Pila 3: The_Lord_of_the_Rings Pila 4: The_adventures_of_Sherlock_Holmes Curtain Ten_little_niggers