Cod sursa(job #629334)

Utilizator Anamaria20Cotirlea Anamaria Anamaria20 Data 3 noiembrie 2011 10:22:07
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.99 kb
#include <stdio.h>
#include <vector>

using namespace std;

FILE *f,*s;

struct numar
{
	int x;
};

numar z;

vector <numar> v1[666015];

int i,j,k,l,m,n;

void Add(int k)
{
	m=k%666013;
	
	int bec=0;
	
	for(i=0;i<v1[m].size();i++)
	{
		if(v1[m][i].x==k)
		{
			bec=1;
		}
	}	
	
	if(bec==0)
	{
		z.x=k;
		
		v1[m].push_back(z);
	}	
}

void Remove(int k)
{
	m=k%666013;
	
	for(i=0;i<v1[m].size();i++)
	{
		if(v1[m][i].x==k)
		{
			int lim=v1[m].size();
			v1[m][i]=v1[m][lim-1];
			v1[m].pop_back();
		}	
	}	
}

void Find(int k)
{
	m=k%666013;
	
	for(i=0;i<v1[m].size();i++)
	{
		if(v1[m][i].x==k)
		{
			fprintf(s,"1\n");
			
			return;
		}
	}	
	
	fprintf(s,"0\n");
}

int main()
{
	f=fopen("hashuri.in","r");
	s=fopen("hashuri.out","w");
	
	fscanf(f,"%d",&n);
	
	for(j=1;j<=n;j++)
	{
		int a,b;
		
		fscanf(f,"%d %d",&a,&b);
		
		if(a==1) Add(b);
		if(a==2) Remove(b);
		if(a==3) Find(b);			
	}	
	
	fclose(s);
	
	return 0;
}