Cod sursa(job #644298)

Utilizator an_drey_curentandreycurent an_drey_curent Data 5 decembrie 2011 23:30:27
Problema Hashuri Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 1.14 kb
#include<vector>
#include<fstream>
#include<iostream>
using namespace std;
vector<long int>v[699999];
ifstream f("hashuri.in");
ofstream g("hashuri.out");
long int existenta(long int x,long int cheia)
{
	long int i,lungime=v[cheia].size();
	for(i=0;i<lungime;i++)
		if(v[cheia][i]==x)
			return 1;
	return 0;
}
long int pozitie(long int x,long int cheia)
{
	long int i,lungime=v[cheia].size();
	for(i=0;i<lungime;i++)
		if(v[cheia][i]==x)
			return i;
	return -1;
}
void inserare(long int x,long int cheia)
{
		v[cheia].push_back(x);
}
void stergere(long int x,long int cheia)
{
	long int poz,lungime=v[cheia].size();
	poz=pozitie(x,cheia);
	if(poz!=-1)
	{
		v[cheia][poz]=v[cheia][lungime-1];
		v[cheia].pop_back();
	}
}
void citire()
{
	long int i,N,instructiune,numar,cheia;
	f>>N;
	for(i=1;i<=N;i++)
	{
		f>>instructiune;
		f>>numar;
		cheia=numar%699967;
		switch(instructiune)
		{
		case 1:
			inserare(numar,cheia);
			break;
		case 2:
			stergere(numar,cheia);
			break;
		case 3:
			g<<existenta(numar,cheia)<<endl;
			break;
		}
	}
}
int main()
{
	citire();
	f.close();
	g.close();
	return 0;
}