Pagini recente » Cod sursa (job #3225248) | Cod sursa (job #410199) | Cod sursa (job #686274) | Cod sursa (job #1524783) | Cod sursa (job #2333839)
#include <stdio.h>
#include <vector>
#define MOD 666013
using namespace std;
FILE *f,*g;
vector <int> Hash[MOD+5];
int N,Key;
void AddInTable(int X)/// In functie de cheie, adaug elementul in tabelul de dispersie
{
size_t i=0;
int p=Hash[Key].size();
for(;i<p;++i)
if(X==Hash[Key][i])
return;
Hash[Key].push_back(X);
}
void Delete(int X)
{
size_t i=0;
int p=Hash[Key].size();
for(;i<p;++i)
if(X==Hash[Key][i])
{
Hash[Key].erase(Hash[Key].begin()+i);
return;
}
}
int Search(int X)
{
size_t i=0;
int p=Hash[Key].size();
for(;i<p;++i)
if(X==Hash[Key][i])return 1;
return 0;
}
void Solve()
{
int X,task;
fscanf(f,"%d",&N);
while(N)
{
N--;
fscanf(f,"%d %d",&task,&X);
if(task==1)
{
Key=X%MOD; AddInTable(X); /// Codific elementul
continue;
}
if(task==2)
{
Delete(X);
continue;
}
fprintf(g,"%d\n",Search(X));
}
}
int main()
{
f=fopen("hashuri.in","r");g=fopen("hashuri.out","w");
Solve();
fclose(f),fclose(g);
return 0;
}