Pagini recente » Cod sursa (job #1820787) | Cod sursa (job #1105913) | Cod sursa (job #1875995) | Cod sursa (job #983125) | Cod sursa (job #549816)
Cod sursa(job #549816)
#define hash_size 1234
#include<fstream>
#include<vector>
#include<list>
#include<cmath>
using namespace std;
vector<list<int> > table;
int h(int val){return (int)(sqrt(val)+val/2)%hash_size;}
void add(int val){
int pos=h(val),found=0;
for(list<int>::iterator i=table[pos].begin();i!=table[pos].end();i++){
if((*i)==val){i=table[pos].end();found=1;}}
if(found==0)table[pos].push_back(val);}
void del(int val){
int pos=h(val);
list<int>::iterator j;
for(list<int>::iterator i=table[pos].begin();i!=table[pos].end();i++){
if((*i)==val){table[pos].erase(i);i=table[pos].end();}}}
int src(int val){
int pos=h(val);
for(list<int>::iterator i=table[pos].begin();i!=table[pos].end();i++){
if((*i)==val)return 1;}
return 0;}
int main(){
int n,d1,d2;
table.resize(hash_size);
ifstream f("hashuri.in");
ofstream g("hashuri.out");
f>>n;
for(int i=0;i<n;i++){
f>>d1>>d2;
if(d1==1)add(d2);
if(d1==2)del(d2);
if(d1==3)g<<src(d2)<<'\n';}
f.close();g.close();
return 0;}