Pagini recente » Cod sursa (job #2323437) | Cod sursa (job #58592) | Cod sursa (job #2596135) | Cod sursa (job #38726) | Cod sursa (job #1106219)
#include<stdio.h>
#include<vector>
using namespace std;
FILE *in,*out;
//definitii
#define pb push_back
//constante
const int modulo=666013;
//functii
void inserare (int val);
void stergere (int val);
int cautare (int val);
//variabile
int oper, tip,valoare;
vector<int> Hash[modulo];
int main(void)
{
in=fopen("hashuri.in","rt");
out=fopen("hashuri.out","wt");
fscanf(in,"%d",&oper);
while(oper--)
{
fscanf(in,"%d%d",&tip,&valoare);
if(tip==1)
inserare(valoare);
else
if(tip==2)
stergere(valoare);
else
fprintf(out,"%d\n",cautare(valoare));
}
}
void inserare(int val)
{
int pos=val%modulo;
vector<int> :: iterator it,end=Hash[pos].end();
for(it=Hash[pos].begin() ; it!=end ; ++it)
if(*it==val)
return;
Hash[pos].pb(val);
}
void stergere(int val)
{
int pos=val%modulo;
vector<int> :: iterator it,end=Hash[pos].end();
for(it=Hash[pos].begin() ; it!=end ; ++it)
if(*it==val)
{
Hash[pos].erase(it);
return;
}
}
int cautare(int val)
{
int pos=val%modulo;
vector<int> :: iterator it,end=Hash[pos].end();
for(it=Hash[pos].begin() ; it!=end ; ++it)
if(*it==val)
return 1;
return 0;
}