Pagini recente » Cod sursa (job #1112977) | Cod sursa (job #701842) | Cod sursa (job #2517168) | Cod sursa (job #1017231) | Cod sursa (job #808560)
Cod sursa(job #808560)
#include<stdio.h>
#include<vector>
using namespace std;
FILE *f = fopen("hashuri.in","r");
FILE *g = fopen("hashuri.out","w");
typedef vector<int>::iterator it;
#define M 666013
int N,op,a;
vector<int> H[M];
void citire(void)
{
fscanf(f,"%d %d",&op,&a);
}
inline void adaugare(int a)
{
int x = a%M;
for(it i=H[x].begin();i<H[x].end();i++)
if(*i == a)
return ;
H[x].push_back(a);
}
inline void stergere(int a)
{
int x = a%M;
it i;
for(i=H[x].begin();i<H[x].end();i++)
if(*i == a)
{
*i = H[x].back();
H[x].pop_back();
return ;
}
}
inline int exista(int a)
{
int x = a%M;
for(it i=H[x].begin();i<H[x].end();i++)
if(*i == a)
return 1;
return 0;
}
int main()
{
fscanf(f,"%d ",&N);
for(int i=1;i<=N;i++)
{
citire();
switch(op)
{
case 1 : adaugare(a);
break;
case 2 : stergere(a);
break;
default : fprintf(g,"%d\n",exista(a));
}
}
}