Cod sursa(job #629313)

Utilizator SmarandaMaria Pandele Smaranda Data 3 noiembrie 2011 10:10:09
Problema Hashuri Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.95 kb
#include<cstdio>
#include<vector>
#define P 666013
using namespace std;
struct HASH
{
	long x,ap;
};
vector <HASH> f[P+1];
long cautare (long s, long q,vector <HASH> :: iterator &unde)
{
	long i;
	vector <HASH> :: iterator it;
	for (it=f[q].begin();it!=f[q].end();++it)
		if ((*it).x==s)
		{
			unde=it;
			return 1;
		}
	return 0;
}

int main()
{
	long n,i,op,x,w,k;
	vector <HASH> :: iterator unde;
	HASH temp;
	
	freopen("hashuri.in","r",stdin);
	freopen("hashuri.out","w",stdout);
	
	scanf("%ld",&n);
	for (i=1;i<=n;i++)
	{
		scanf("%ld%ld",&op,&x);
		switch (op)
		{
		case 1 : {
			w=x%P;
			k=cautare(x,w,unde);
			temp.x=x;
			temp.ap=1;
			if (k==0)
			{
				f[w].push_back(temp);
			}
			break;
			}
		case 2 : {
			w=x%P;
			k=cautare(x,w,unde);
			if (k==1)
				f[w].erase(unde,unde+1);
			break;
			}
		case 3 : {
			w=x%P;
			printf("%ld\n",cautare(x,w,unde));
			break;
			}
		}
	}
	return 0;
}