Cod sursa(job #808510)

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

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

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

void deelet (int x)
{
	int k= x%mod;
	int p,a,b;
	int ok=0;
	for ( int 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();
	}
	
}


int find (int x)
{
	int k=x%mod;
	int 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");
	int 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;
}