Cod sursa(job #1041682)

Utilizator Anamaria20Cotirlea Anamaria Anamaria20 Data 25 noiembrie 2013 23:44:16
Problema Hashuri Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.97 kb
#include <stdio.h>
#include <vector>

using namespace std;

FILE *f,*s;

long int n;

vector <int> v[666013];

vector <int> :: iterator Find( int k )
{
	vector <int> :: iterator it;
	
	int mod = k%666013;
	
	for (it = v[mod].begin(); it != v[mod].end() ; it++ )
	{
		if ( *it == k )
			return it;
	}
	
	return v[mod].end();
}

void Insert ( int k )
{
	if ( Find(k) == v[k%666023].end() )
		v[k % 666013].push_back(k);
}

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

int main()
{
	f=fopen("hashuri.in","r");
	s=fopen("hashuri.out","w");
	
	fscanf(f,"%ld",&n);
	
	for(int i=1; i<=n; i++)
	{
		long int a,b;
		
		fscanf(f,"%ld %ld",&a,&b);
		
		if ( a == 1)
			Insert(b); 
		if ( a == 2)
			Erase(b); 
		if ( a == 3)
		{
			if (Find(b) != v[b%666013].end() ) 
				fprintf(s,"1\n");
			else
				fprintf(s,"0\n");
		}	
	}
	
	
	fclose(s);
	
	return 0;
}