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];
}