Suposem una nova estructura de dades anomenada “elastic stack”. Una elastic stack funciona de forma similar a una pila, amb l’afegit de que les seves operacions són personalitzables. Així, a una elastic stack hi poden haver operacions per treure o afegir més d’un element, o que retornin el producte dels dos primers elements, etc. Evidentment, el cost de les operacions d’una elastic stack no són equivalents.
Per a aquest problema l’únic que es demana és calcular, donada una elastic stack buida i la descripció de les seves operacions amb els seus costos, el nombre de maneres possibles d’arribar a que l’elastic stack tingui elements en unitats de temps, i el nombre mínim d’operacions que calen per arribar-hi.
Per a simplificar el problema, supossarem que les operacions de consulta només actuen sobre un element (l’exemple del producte dels 2 primers elements només es podría fer quan l’elastic stack tingués més d’un element) i que es poden fer en qualsevol moment, inclòs quan l’elastic stack és buida.
La entrada comença amb un nombre d’operacions , i un natural , seguits de linies describint les operacions. Cada linia consisteix en un string: “afegir”, “treure” o “consulta”, el cost de l’operació () i, si aquesta no és de consulta, el nombre d’elements que afegeix o treu (). A continuació, l’entrada continua amb parelles d’enters .
Suposeu , i .
Per a cada parella , treieu en una linea el nombre de maneres en mòdul d’arribar a una elastic stack amb elements en unitats de temps i el mínim nombre de passos per arribar-hi, o si no es pot arribar.
Input
2 1000 afegir 1 1 treure 1 1 1 1 3 1
Output
1 1 2 3
Input
3 1000 afegir 1 1 consulta 1 treure 1 1 1 1 3 1
Output
1 1 5 3