Catalogo 50/100

Buongiorno, il problema è semplice ma non riesco a capire dove sbaglio.
Ho provato a risolverlo in due modi, prima con un unordered_multiset e poi con una map, ma in entrambi i casi tutti gli output dell’ultimo subtask non sono corretti.

Prova con unordered_multiset:

#include <bits/stdc++.h>
using namespace std;
unordered_multiset<int> s;

void aggiungi(long long int id) {
    s.insert(id);
}

void togli(long long int id) {
    auto it = s.find(id);
    s.erase(it);
}

int conta(long long int id) {
    return s.count(id);
}

Prova con map:

#include <bits/stdc++.h>
using namespace std;
map<int, int> m;

void aggiungi(long long int id) {
    if (m.count(id)) {
        m[id] += 1;
    } else {
        m[id] = 1;
    }
}

void togli(long long int id) {
    m[id] -= 1;
}

int conta(long long int id) {
    return m[id];
}

utilizza i long long al posto degli int nella mappa

Grazie mille, non me ne ero accorto