Pagini recente » Cod sursa (job #110214) | Cod sursa (job #717075) | Cod sursa (job #2914584) | Cod sursa (job #2569498) | Cod sursa (job #629313)
Cod sursa(job #629313)
#include<cstdio>
#include<vector>
#define P 666013
using namespace std;
struct HASH
{
long x,ap;
};
vector <HASH> f[P+1];
long cautare (long s, long q,vector <HASH> :: iterator &unde)
{
long i;
vector <HASH> :: iterator it;
for (it=f[q].begin();it!=f[q].end();++it)
if ((*it).x==s)
{
unde=it;
return 1;
}
return 0;
}
int main()
{
long n,i,op,x,w,k;
vector <HASH> :: iterator unde;
HASH temp;
freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
scanf("%ld",&n);
for (i=1;i<=n;i++)
{
scanf("%ld%ld",&op,&x);
switch (op)
{
case 1 : {
w=x%P;
k=cautare(x,w,unde);
temp.x=x;
temp.ap=1;
if (k==0)
{
f[w].push_back(temp);
}
break;
}
case 2 : {
w=x%P;
k=cautare(x,w,unde);
if (k==1)
f[w].erase(unde,unde+1);
break;
}
case 3 : {
w=x%P;
printf("%ld\n",cautare(x,w,unde));
break;
}
}
}
return 0;
}