Cod sursa(job #644346)

Utilizator Anamaria20Cotirlea Anamaria Anamaria20 Data 6 decembrie 2011 09:39:34
Problema Hashuri Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <cstdio>
#include <vector>

using namespace std;

FILE *f,*s;

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

vector<int> g[666013];

vector<int>::iterator Find(int x)
{
    int l=x%666013;
	
    vector<int>::iterator it;

    for(it=g[l].begin();it!=g[l].end();it++)
	{	
        if (*it==x)
            return it;
	}
	
    return g[l].end();
}


void Insert(int k)
{
	l=k%666013;
    
    if (Find(k)==g[l].end())
        g[l].push_back(k);

}

void Delete(int k)
{
	l=k%666013;
	
    vector<int>::iterator it =Find(k);
    
    if (it != g[l].end())
        g[l].erase(it);

}

int main()
{
	f=fopen("hashuri.in","r");
	s=fopen("hashuri.out","w");
	
	fscanf(f,"%d",&n);
	
	for(i=1;i<=n;i++)
	{
		int x,y;
		
		fscanf(f,"%d %d",&x,&y);
		
		if(x==1)
		{
			Insert(y);
		}
		else if(x==2)
		{
			Delete(y);
		}
		else
		{
			fprintf(s,"%d\n",Find(y)!=g[y%666013].end());
		}	
	}		
	
	fclose(s);
	
	return 0;
}