Cod sursa(job #328429)

Utilizator socheoSorodoc Ionut socheo Data 1 iulie 2009 23:32:57
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include<cstdio>
#include<vector>
using namespace std;
#define mod 555557
vector<int> h[mod];
vector<int>::iterator findx(int x)
{ int q=x%mod;
  for(vector<int>::iterator it=h[q].begin();it!=h[q].end();it++)
	  if(*it==x)
		  return it;
	  return h[q].end();
}
void inserta(int a)
{ int y=a%mod;
if(findx(a)==h[y].end()) 
	h[y].push_back(a);
}
void deletea(int a)
{ int y=a%mod;
	vector<int>::iterator f=findx(a);
  if(f!=h[y].end())
	    h[y].erase(f);
}
	
	
int main()
{ freopen("hashuri.in","r",stdin);
  freopen("hashuri.out","w",stdout);
  int n,nr,op;
  scanf("%d",&n);
  for(int i=1;i<=n;i++)
  { scanf("%d%d",&op,&nr);
   if(op==1)
      inserta(nr);
   if(op==2)
	   deletea(nr);
   if(op==3)
	 { int y=nr%mod;
       vector<int>::iterator f=findx(nr);
	   if(f==h[y].end()) printf("0\n");
	   else printf("1\n");
	 }
  }
  
  return 0;}