(Queue) Reemplaça 0s per suma abans a posició parell

Implementeu una funció ITERATIVA que, donada una cua de naturals,
retorna una nova cua que és idèntica a la inicial, excepte que cada 0
s’ha reemplaçat per la suma dels elements a posició parell que apareixen
abans d’aquest 0 (en la cua original).

Sobreentenem que el primer element de la cua està a posició 0, el
següent a posició 1, el següent a posició 2, i així successivament.
Aquesta és la capcelera:

    // Pre:  Sigui Q el valor inicial de la cua q que es rep com a paràmetre.
    //       Els valors guardats a Q son majors o iguals a 0.
    // Post: Sigui Q' la cua retornada. Q i Q' tenen el mateix nombre d'elements.
    //       A més a més, per a cada posició p de Q', si Q té un valor x diferent de 0 a posició p,
    //       llavors Q' també té x a posició p.
    //       En canvi, si Q té valor 0 a posició p, llavors el valor de Q' a posició p és
    //       la suma de tots els valors de Q a posició parell abans que p.
    queue<int> replace0sWithPreviousSumPosEven(queue<int> q);

Aquí tenim un exemple de comportament de la funció, a on les cues es
representen tenint el primer element de la cua a l’esquerra i l’últim
element de la cua a la dreta:

    replace0sWithPreviousSumPosEven([1 3 0 0 1 3 2 0 5 0 9]) = [1 3 1 1 1 3 2 4 5 9 9]

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
cues. Heu de trobar una solució ITERATIVA i eficient del problema.

Avaluació sobre 10 punts:

- Solució lenta: 7 punts.

- solució ràpida: 10 punts.

Entenem com a solució lenta una que és correcta i capaç de superar els
jocs de proves públics. Entenem com a solució ràpida una que és correcta
i capaç de superar els jocs de proves públics i privats.

Informació del problema

Autoria: PRO1

Generació: 2026-01-25T13:51:31.732Z

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