Tieni aggiornato il catalogo

Portale di allenamento
Soluzione corretta al 100%:
                
  
#include <iostream>
#include <unordered_map> 
// Utilizziamo un unordered_map per tenere traccia degli 
// ID dei libri e del numero di copie.
std::unordered_map catalogo;  

void aggiungi(long long int id) {
     catalogo[id]++;
}

void togli(long long int id) {
    if (catalogo.find(id) != catalogo.end() && catalogo[id] > 0) {
            catalogo[id]--;
        }
}

int conta(long long int id) {
    if (catalogo.find(id) != catalogo.end()) {
            return catalogo[id];
        } else {
            return 0;  // Se l'ID non è nel catalogo, restituiamo 0.
        }
}                
                
              
Spiegazione del programma:

In questa implementazione, utilizziamo una struttura dati catalogo che è un unordered_map. La funzione "aggiungi" incrementa il conteggio delle copie di un libro con un certo ID, "togli" decrementa il conteggio (a condizione che ci siano copie da rimuovere), e "conta" restituisce il numero di copie di un libro con un certo ID.