Cod sursa(job #336052)

Utilizator prdianaProdan Diana prdiana Data 31 iulie 2009 11:11:52
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
#include <stdio.h>
#include <vector>
#define mod 679277

using namespace std;

vector<int> h[mod];

bool find(int nr)
{
	int key = nr % mod;
	for (int i =0;i<h[key].size();i++)
	{
		if (h[key][i] == nr)
		{
			return true;
		}
	}
	return false;
}

inline void del(int nr)
{
	int key = nr % mod;
	for (int i =0;i<h[key].size();i++)
	{
		if (h[key][i] == nr)
		{
			h[key][i] = -1;
			return;
		}
	}
}

int main()
{
	freopen("hashuri.in","r",stdin);
	freopen("hashuri.out","w",stdout);
	int n,s,op,i;
	scanf("%d",&n);
	for (i=0;i<n;i++)
	{
		scanf("%d%d",&op,&s);
		{
			switch(op)
			{
			case 1:
				if (!find(s))
				{
					h[s % mod].push_back(s);
				}
				break;
			case 2:
				if (find(s))
				{
					del(s);
				}
				break;
			case 3:
				if (find(s))
				{
					printf("1\n");
				}
				else
				{
					printf("0\n");
				}
				break;
			}
		}
	}

	return 0;
}