Cod sursa(job #411331)

Utilizator nautilusCohal Alexandru nautilus Data 4 martie 2010 20:34:10
Problema Hashuri Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.99 kb
#include<fstream>
#include<vector>
#define dmax 1000002
#define p 1000003

using namespace std;

vector<long>a[dmax];

void adaugare(long nr)
{
 long rest,i;
 int ok=0;
 
 rest=nr%p;
 for (i=0; i<a[rest].size(); i++)
	 if (a[rest][i]==nr)
		 {
		  ok=1;
		  break;
		 }
 if (ok==0)
	 a[rest].push_back(nr);
}

void stergere(long nr)
{
 long rest,i;
 
 rest=nr%p;
 for (i=0; i<a[rest].size(); i++)
	 if (a[rest][i]==nr)
		 {
		  a[rest][i]=a[rest][a[rest].size()];
		  a[rest].pop_back();
		  break;
		 }
}

int interogare(long nr)
{
 long rest,i;
 int ok=0;
 
 rest=nr%p;
 for (i=0; i<a[rest].size(); i++)
	 if (a[rest][i]==nr)
		 {
		  ok=1;
		  break;
		 }
 
 return ok;
}

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