Resetejadors d’una llista d’enters-iteratiu. T24635


Statement
 

pdf   zip   tar

Un resetejador d’una llista d’enters és un element que compleix dues condicions

  • És més gran que qualsevol dels elements anteriors a la seva posició.

  • La suma de tots els elements anteriors a la seva posició és superior o igual a 0.

Implementa un nou métode iteratiu de la classe List amb punters que, donada una llista d’enters, retorni tots els seus elements resetejadors. NOTA IMPORTANT: el primer element de la llista sempre és un resetejador.

Aquest mètode ha de trobar-se en el fitxer "ResetElements.cpp" i ha de tenir la següent capçalera

/* Pre: cert. */
/* Post: Retorna tots els elements de la llista que són resetejadors */
template<typename T>
vector<int> List<T>::ResetElements() {
}

NOTES IMPORTANTS:

  • L’algorisme ha de ser eficient, és a dir, que no realitzi càlculs innecessaris.

  • Entre els fitxers que s’adjunten en aquest exercici trobaràs el fitxer List.h que conté la implementació de la classe List amb punters. No cal que modifiquis aquest fitxer.

  • També trobaràs el fitxer program.cpp i el Makefile per a compilar i generar l’executable. El programa principal ja s’encarrega de llegir les dades de la llista i cridar al mètode indicat. Només cal que implementis el mètode ResetElements.

  • Es valorarà la correctesa i eficiència de la solució així com la correcta especificació de la precondició, la postcondició, la invariant del bucle i la funció fita.

  • Per a pujar la solució has de crear el fitxer solution.tar així:

    tar cf solution.tar ResetElements.cpp

Entrada

Com a entrada hi haurà el número d’elements de la llista i els elements.

Sortida

Com a sortida es mostraran els elements resetejadors.

Public test cases
  • Input

    7
    3 7 2 -1 9 3 4
    

    Output

    3 7 9 
    
  • Input

    2
    2 8
    

    Output

    2 8 
    
  • Input

    8
    9 3 1 7 -6 -4 -8 7
    

    Output

    9 
    
  • Input

    9
    3 7 2 -3 -7 -2 9 2 6
    

    Output

    3 7 9 
    
  • Information
    Author
    Alejandro Ríos
    Language
    Catalan
    Official solutions
    Make
    User solutions
    Make