Pagini recente » Cod sursa (job #3180072) | Cod sursa (job #1932474) | Cod sursa (job #2557741) | Cod sursa (job #237409) | Cod sursa (job #1106213)
#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;
}