Donacions

Per resoldre aquest problema heu de completar el codi que trobareu al
final de l’enunciat. Hi heu de reemplaçar cada ??? per una o més línies
de codi. No canvieu res més. Descarregueu-vos de la web del problema el
fitxer code.cc amb el codi a completar (cliqueu el botó “.CPP”
corresponent), editeu-lo i envieu-lo al jutge.

Volem mantenir informació bàsica de les donacions monetàries a un
hospital. En particular, volem guardar quants diners en total ha donat
cada persona, identificada de forma única amb el seu nif (8 dígits
seguits de la lletra majúscula de control).

El programa permet fer cinc operacions diferents:

- N: Escriu el nombre de donants precedit de “number:”. Fixeu-vos que hi
  pot haver menys donants que donacions, si hi ha donants repetits.

- D n m: S’apunta que la persona amb nif n ha donat m diners. Si la
  persona ja havia fet alguna donació, n’acumula els imports.

- Q n: Consulta quants diners ha donat de moment la persona amb nif n.
  Cal escriure -1 si encara no ha fet cap donació.

- P: Escriu una línia amb tots els nifs que acaben amb un dígit parell
  (ignorant el caràcter de control), amb els nifs ordenats
  alfabèticament. Cal separar els nifs amb espais.

- L: Escriu la informació del donant amb el nif més gran alfabèticament.
  Si no n’hi ha cap, escriu “NO LAST NIF”.

Entrada

L’entrada consisteix en diverses operacions segons s’ha indicat
anteriorment. Els nifs són correctes, i les donacions són enters
estrictament positius.

Sortida

Per a cada operació (excepte les donacions), escriviu la informació
demanada. Es garanteix que la màxima donació acumulada no serà més gran
que 10⁹.

    #include <iostream>
    #include <map>
    using namespace std;


    int main() {
      map<string, int> M;
      char c;
      while (cin >> c) {
        if (c == 'N') {
          ???
        }
        else if (c == 'D') {
          string nif;
          int money;
          cin >> nif >> money;
          ???
        }
        else if (c == 'Q') {
          string nif;
          cin >> nif;
          ???
        }
        else if (c == 'P') {
          ???
        }
        else { // c == 'L'
          ???
        }
      }
    }

Informació del problema

Autoria: Salvador Roura

Generació: 2026-01-25T14:23:38.911Z

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