Pagini recente » Cod sursa (job #291442) | Cod sursa (job #2460436) | Cod sursa (job #451371) | Cod sursa (job #1956071) | Cod sursa (job #658950)
Cod sursa(job #658950)
#include<stdio.h>
#include<vector>
#define M 666013
using namespace std;
vector<int> H[M];
vector<int>::iterator gaseste(int x)
{
int lista=x%M;
vector<int>::iterator i;
for(i=H[lista].begin();i!=H[lista].end();++i)
if(*i==x)
return i;
return H[lista].end();
}
void insereaza(int x)
{
int lista=x%M;
if(gaseste(x)==H[lista].end())
H[lista].push_back(x);
}
void sterge(int x)
{
int lista=x&M;
vector<int>::iterator i=gaseste(x);
if(i!=H[lista].end())
H[lista].erase(i);
}
int main()
{
int n;
FILE *f=fopen("hashuri.in","rt");
FILE *g=fopen("hashuri.out","wt");
int op,x,i;
fscanf(f,"%i",&n);
for(i=0;i<n;i++)
{
fscanf(f,"%i%i",&op,&x);
if(op==1)
insereaza(x);
if(op==2)
sterge(x);
if(op==3)
fprintf(g,"%i\n",gaseste(x)!=H[x%M].end());
}
fclose(f);
fclose(g);
return 0;
}