Cod sursa(job #709084)

Utilizator dany123Florea Daniel dany123 Data 7 martie 2012 17:33:05
Problema Hashuri Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include<iostream>
#include<fstream>
using namespace std;
const int nmax = 1000003;
int v[nmax],n;
inline int has (int x) {return (x%nmax);}
void inserare (int x)
{
	int k=0;
	while (v[has(x+k)]!=0 && k<=n) k++;
	if (k>=n+1) {cout<<"Vectorul este plin!"; return;}
	v[has(x+k)]=x;
}

void stergere (int x)
{
	int k=0;
	while (v[has(x+k)]!=x && k<=n) k++;
	if (k<=n) v[has(x+k)]=0;
}

bool cautare (int x)
{
	int k=0;
	while (v[has(x+k)]!=x && k<=n) k++;
	if (k<=n && v[has(x+k)]==x) return 1;
	else return 0;
}


int main ()
{
	ifstream fin ("hashuri.in");
	ofstream fout ("hashuri.out");
	int op,x;
	fin>>n;
	for (int i=1;i<=n;i++)
	{
		fin>>op>>x;
		if (op==1) inserare(x);
		else if (op==2) stergere(x);
		else fout<<cautare(x)<<'\n';
	}
	fin.close();
	fout.close();
	return 0;
}