Pagini recente » Cod sursa (job #3199873) | Cod sursa (job #1704379) | Cod sursa (job #938491) | Cod sursa (job #1110682) | Cod sursa (job #972795)
Cod sursa(job #972795)
#include <cstdio>
#include <list>
using namespace std;
const int MOD = 1000013;
list <int> L[MOD];
list <int> :: iterator HASH_search (const int x) {
const int k = x % MOD;
for (list <int> :: iterator i = L[k].begin (); i != L[k].end (); ++i)
if (*i == x)
return i;
return L[k].end ();
}
void HASH_insert (const int x) {
const int k = x % MOD;
if (HASH_search (x) == L[k].end ())
L[k].push_back (x);
}
void HASH_erase (const int x) {
const int k = x % MOD;
list <int> :: iterator i = HASH_search (x);
if (i != L[k].end ()) {
L[k].erase (i);
}
}
void HASH_check (const int x) {
const int k = x % MOD;
list <int> :: iterator i = HASH_search (x);
if (i != L[k].end ())
printf ("1\n");
else
printf ("0\n");
}
int main () {
freopen ("hashuri.in", "r", stdin);
freopen ("hashuri.out", "w", stdout);
int N, t, x;
scanf ("%d", &N);
while (N--) {
scanf ("%d%d", &t, &x);
if (t == 1) {
HASH_insert (x);
continue;
}
if (t == 2) {
HASH_erase (x);
continue;
}
HASH_check (x);
}
}