Suma per sota de cada posició d’una pila saltant de dos en dos

Implementeu una funció RECURSIVA que, donada una pila d’enters
[a₁, a₂, a₃, a₄, …, a_(n − 2), a_(n − 1), a_(n)], a on es representen
els elements de la pila començant per l’esquerra amb el fons de la pila
(a₁ és l’element del fons, a₂ és el següent des del fons, i així
successivament), retorna una pila de la mateixa mida amb aquest
contingut:
[a₁, a₂, a₃ + a₁, a₄ + a₂, a₅ + a₃ + a₁, a₆ + a₄ + a₂, …, a_(n − 1) + a_(n − 3) + ⋯, a_(n) + a_(n − 2) + ⋯].
En altres paraules, la nova pila té, a cada posició, la suma dels
elements en la pila original que es troben des d’aquella posició cap al
fons, i saltant de dos en dos. Aquesta és la capcelera:

    // Pre: Sigui [a1, a2, a3, a4, ... a{n-2}, a{n-1}, an] el valor inicial rebut en el paràmetre s.
    // Post: Retorna la pila [a1, a2, a3+a1, a4+a2, a5+a3+a1, a6+a4+a2, ..., a{n-1}+a{n-3}+..., an+a{n-2}+...]
    stack<int> SumBelowLeap2(stack<int> s);

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:

    SumBelowLeap2([5,4,1,8,9,7]) = [5,4,6,12,15,19]

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. En les
crides recursives, incloeu la hipòtesi d’inducció, és a dir una
explicació del que es cumpleix després de la crida, i també la funció de
fita/decreixement o una justificació de perquè la funció recursiva
acaba.

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.

Avaluació sobre 10 punts:

- Solució lenta: 6 punts.

- Solució lenta + justificació: 8 punts.

- solució ràpida: 8 punts.

- solució ràpida + justificació: 10 punts.

Informació del problema

Autoria: PRO1

Generació: 2026-01-25T14:01:33.112Z

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