Suma per sobre o per sota en una pila

Implementeu una funció RECURSIVA que, donada una pila d’enters sint, i
donada una pila d’strings sstring de la mateixa mida que conté només
mots above o below, retorna una nova pila d’enters de la mateixa mida
que les dues anteriors tal que, per a cada posició p:

- Si sstring té above a posició p, llavors la pila retornada té a
  posició p la suma dels elements per sobre o igual a posició p en sint.

- Si sstring té below a posició p, llavors la pila retornada té a
  posició p la suma dels elements per sota o igual a posició p en sint.

    // Pre: sint i sstring tenen la mateixa mida, i sstring només conté
    //      mots de {"above", "below"} un nombre arbitrari de cops i
    //      en un ordre arbitrari.
    // Post: Retorna una pila d'enters de la mateixa mida que sint i sstring.
    //       Per a cada posició p, si sstring té "above" a posició p, llavors
    //       la pila retornada té a posició p el resultat de sumar tots els
    //       elements de sint a posició per sobre o igual a p,
    //       i si per contra sstring té "below" a posició p, llavors
    //       la pila retornada té a posició p el resultat de sumar tots els
    //       elements de sint a posició per sota o igual a p.
    stack<int> sumAboveOrBelow(stack<int> sint, stack<string> sstring);

Aquí tenim un exemple d’entrada i sortida de la funció, a on es mostren
els elements de les piles des del fons de la pila a l’esquerra fins al
top de la pila a la dreta:

    8 5 1 7 1
    below above above above below
    =>
    8 14 9 8 22

Observació

Només cal enviar el procediment demanat; el programa principal serà
ignorat.

Observació

La vostra funció i subfuncions que creeu han de treballar només amb
piles. Heu de trobar una solució RECURSIVA i eficient del problema.
Podeu crear funcions auxiliars per tal de millorar l’eficiència.

Una implementació no eficient que superi honestament els jocs de proves
públics us permetrà obtenir una nota raonable, però per a superar tots
els jocs de proves i obtenir la màxima nota haureu de pensar en una
manera de fer-ho eficient.

Informació del problema

Autoria: PRO1

Generació: 2026-01-25T19:40:53.751Z

© Jutge.org, 2006–2026.
https://jutge.org
