Pagini recente » Borderou de evaluare (job #2973041) | Cod sursa (job #1771760)
#include <cstdio>
#include <vector>
#define mod 666013
using namespace std;
vector <int> list[mod];
vector <int> :: iterator find(int x)
{
int k=x % mod;
vector <int> :: iterator it;
for(it=list[k].begin(); it<list[k].end(); it++)
if(*it == x) return it;
return list[k].end();
}
void insert(int x)
{
int k= x % mod;
if(find(x) == list[k].end())
list[k].push_back(x);
}
void erase_value(int x)
{
int k= x % mod;
vector <int> :: iterator it = find(x);
if(it != list[k].end())
list[k].erase(it);
}
int main()
{
freopen("hashuri.in", "r", stdin);
freopen("hashuri.out", "w", stdout);
int n;
scanf("%d", &n);
for(int i=1; i<=n; i++)
{
int tip, x;
scanf("%d%d", &tip, &x);
if(tip == 1) insert(x);
else if(tip == 2) erase_value(x);
else if(tip == 3)
{
bool ok;
if(find(x) != list[x%mod].end()) ok=1;
else ok=0;
printf("%d\n", ok);
}
}
}