Cod sursa(job #808497)

Utilizator krissu93FMI Tiugan Cristiana Elena krissu93 Data 6 noiembrie 2012 20:22:54
Problema Hashuri Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 1.02 kb
#include <iostream>
#include <fstream>
#include <vector>
#define mod 666013

using namespace std;
vector <long> hash[mod];

void insert ( long x)
{
	long k=x%mod;
	for (long i=0; i<hash[k].size(); i++)
		if (hash[k][i] == x) return ;
	
	hash[k].push_back(x);
	
}

void deelet (long long x)
{
	long k= x%mod;
	long p,a,b;
	long ok=0;
	for ( long i=0; i<hash[k].size();i++)
		if (hash[k][i] == x) 
		{
			ok=1;
			p=i;
		}
	if (ok==1)
	{
		a= hash[k].size()-1;
		b= hash[k][a];
		hash[k][a]=hash[k][p];
		hash[k][p]=b;
		hash[k].pop_back();
	}
	
}


long find (long x)
{
	long k=x%mod;
	long i;
	for (i=0;i<hash[k].size();i++)
	{
		if (hash[k][i] == x) return 1;
	}
	return 0;
}

int main ()
{
	ifstream in("hashuri.in");
	ofstream out("hashuri.out");
	long n,op,x,i;
	in>>n;
	for (i=0;i<n;i++)
	{
		in>>op>>x;
		if (op==1)
		{
			insert(x);}
		else
		
		if (op==2)
		{
			deelet(x);
		}
		else
		
		if (op==3)
		{
			out<<find(x)<<endl;
		}
	}
	return 0;
}