Tieni aggiornato il catalogo
Portale di allenamentoDevi tenere aggiornato il catalogo di una libreria
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.