Cod sursa(job #616536)

Utilizator razvan2006razvan brezulianu razvan2006 Data 12 octombrie 2011 20:03:17
Problema Hashuri Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.04 kb
#include<stdio.h>
#include<stdlib.h>
#define PRIM 999979

long i, j, n, LgVec[PRIM + 1], x[PRIM + 1], y[PRIM + 1], ok;
long * vec[PRIM + 1];
	
int main()
{
	freopen("hash.in", "rt", stdin);
	freopen("hash.out", "wt", stdout);
		
	scanf("%ld", &n);
	
	for(i = 1; i <= n; i++)
	{
		scanf("%ld %ld", &x[i], &y[i]);
		
		if(x[i] == 1)
			LgVec[y[i] % PRIM]++;
	}
	
	for(i = 0; i < PRIM; i++)
		if(LgVec[i] != 0)
		{
			vec[i] = (long*) malloc(LgVec[i] * sizeof(long));
			LgVec[i] = 0;
		}
	
	for(i = 1; i <= n; i++)
	{
		if(x[i] == 1)
		{
			vec[y[i] % PRIM][LgVec[y[i] % PRIM]] = y[i];
			LgVec[y[i] % PRIM]++;
		}
		
		if(x[i] == 2)
		{
			for(j = 0; j < LgVec[y[i] % PRIM]; j++)
				if(vec[y[i] % PRIM][j] == y[i])
					vec[y[i] % PRIM][j] = -1;
		}
		
		if(x[i] == 3)
		{
			ok = 1;
			for(j = 0; j < LgVec[y[i] % PRIM] && ok == 1; j++)
				if(vec[y[i] % PRIM][j] == y[i])
				{				
					printf("1\n");
					ok = 0;
				}			
			
			if(ok == 1)
				printf("0\n");
		}
	}
	
	fclose(stdout);
	
	return 0;
}