Pagini recente » Cod sursa (job #2983953) | Cod sursa (job #2274667) | Cod sursa (job #1855881) | Cod sursa (job #3040809) | Cod sursa (job #641718)
Cod sursa(job #641718)
#include <cstdlib>
#include <iostream>
#include<vector>
#include<stdio.h>
using namespace std;
#define prim 666013
int n;
vector<int> v[prim];
inline vector<int>::iterator cautare(int val)
{
int list = val % prim;
vector<int>::iterator it;
for (it = v[list].begin(); it != v[list].end(); ++it)
if (*it == val)
return it;
return v[list].end();
}
inline void sterg(int val)
{int list=val % prim;
vector<int>::iterator it=cautare(val);
if(it!=v[list].end())
v[list].erase(it);
}
inline void adaug(int val)
{int list=val%prim;
if(cautare(val)==v[list].end());
v[list].push_back(val);
}
int main(int argc, char *argv[])
{int operatie,valoare;
freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
scanf("%d",&n);
for (int i=1;i<=n;i++)
{
scanf("%d %d",&operatie,&valoare);
if (operatie==1) { adaug(valoare);
continue;
}
if (operatie==2) { sterg(valoare);
continue;
}
printf("%d\n",cautare(valoare)!=v[valoare % prim].end());
}
system("PAUSE");
return EXIT_SUCCESS;
}