Pagini recente » Cod sursa (job #3126166) | Cod sursa (job #288832) | Cod sursa (job #21841) | Cod sursa (job #2011795) | Cod sursa (job #1354572)
#include<stdio.h>
#include<vector>
using namespace std;
FILE *in,*out;
//definitions
#define pb push_back
//constants
const int modulo = 666013;
//variabile
int oper, type,value;
vector<int> Hash[modulo];
//functions
void insert (int val);
void erase (int val);
int search (int val);
int main(void)
{
in = fopen("hashuri.in","rt");
out = fopen("hashuri.out","wt");
fscanf(in, "%d", &oper);
while(oper--)
{
fscanf(in, "%d%d", &type,&value);
if( type == 1)
insert(value);
else
if( type == 2)
erase(value);
else
fprintf(out, "%d\n", search(value));
}
}
void insert(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 erase(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 search(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;
}