Cod sursa(job #527960)

Utilizator tudorsTudor Siminic tudors Data 1 februarie 2011 16:31:16
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include <stdio.h>
#include <vector>
#define mod 666013
using namespace std;
int n,i;
int op,x;

vector <int> G[mod];

vector <int>::iterator cauta(int x)
{
	int l=x % mod;
	vector <int>::iterator it;
	for (it=G[l].begin();it!=G[l].end();it++)
		if (*it==x)
			return it;
	return G[l].end();
}

int insereaza(int x)
{
	int l=x % mod;
	if (cauta(x)==G[l].end())
		G[l].push_back(x);
	return 0;
}

int sterge(int x)
{
	int l=x % mod;
	vector <int>::iterator it=cauta(x);
	if (it!=G[l].end())
		G[l].erase(it);
	return 0;
}

int main()
{
	FILE * f;
	f=fopen("hashuri.in","r");
	FILE * g;
	g=fopen("hashuri.out","w");
	
	fscanf(f,"%d",&n);
	for (i=1;i<=n;i++)
	{
		fscanf(f,"%d %d", &op, &x);
		if (op==1)
			insereaza(x);
		else if (op==2)
			sterge(x);
		else
			fprintf(g,"%d\n", cauta(x)!=G[x%mod].end());
	}
	return 0;
	fclose(f);
	fclose(g);
}