Cod sursa(job #625615)

Utilizator florin_marius90Florin Marius Popescu florin_marius90 Data 25 octombrie 2011 06:37:53
Problema Hashuri Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 1.02 kb
#include <stdio.h>
#include <stdlib.h>
#include <vector>
using namespace std;

void myadd(vector<int> v[666013], int x)
{
	int poz = x % 666013;
	int i;
	int len = v[poz].size();
	for (i =0; i < len; i++)
	{
		if (v[poz][i] == x)
		return;
	}
	v[poz].push_back(x);
}

void erase(vector<int> v[666013], int x)
{
	int poz = x % 666013;
	int i;
	int len = v[poz].size();
	for (i =0; i < len; i++)
	{
		if (v[poz][i] == x)
		v[poz].erase(v[poz].begin() + i);
		return;
	}
	
}

int find (vector<int> v[666013], int x)
{
	int poz = x % 666013;
	int i;
	int len = v[poz].size();
	for (i =0; i < len; i++)
	{
		if (v[poz][i] == x)
		return 1;
	}
	return 0;
  
}

int main()
{
	FILE * f = fopen("hashuri.in","r"), \
	     * g = fopen("hashuri.out", "w");

	int n, op, x;

	fscanf(f, "%i", &n);

	vector<int> v[666013];
	int mod = 666013;
	int i;
	for (i = 0; i < n; i++)
	{
		fscanf(f, "%i%i", &op, &x);
		if (op == 1)
		{
			myadd(v, x);
			continue;
		}
		if (op == 2)
		{
			erase(v,x);
			continue;
		}
		fprintf(g,"%i\n", find(v, x));
		
	}

}